40
2022年8年15年 年年年 16 年 Web 服服服服服服服 年年年年 : 年年年

第 16 章 Web 服务创建和使用

Embed Size (px)

DESCRIPTION

第 16 章 Web 服务创建和使用. 主讲教师 : 杨建军. Talents come from diligence, and knowledge is gained by accumulation. 天才源于勤奋,知识源于积累 。. 教学目标. 本章介绍了如何使用 C# 访问关系数据库。讨论 ADO.NET 的结构以及如何使应 ADO.NET 访问关系数据库,通过本章的学习,读者应掌握 C# 的数据库编程,能够编写 C# 程序访问各种常见的数据库类型 。绝大多数软件系统都需要有数据库的支持,因此数据库编程也是每一个开发者应该掌握的。. 教学重点. - PowerPoint PPT Presentation

Citation preview

Page 1: 第 16 章    Web 服务创建和使用

2023 4 20 年 月 日 星期四

第 16 章 Web 服务创建和使用

主讲教师 : 杨建军

Page 2: 第 16 章    Web 服务创建和使用

Talents come from diligence, and knowledge is gained by accumulation.

天才源于勤奋,知识源于积累 。

Page 3: 第 16 章    Web 服务创建和使用

教学目标

本章介绍了如何使用 C# 访问关系数据库。讨论 ADO.NET 的结构以及如何使应 ADO.NET 访问关系数据库,通过本章的学习,读者应掌握 C# 的数据库编程,能够编写 C# 程序访问各种常见的数据库类型 。绝大多数软件系统都需要有数据库的支持,因此数据库编程也是每一个开发者应该掌握的。

Page 4: 第 16 章    Web 服务创建和使用

教学重点ADO.NET 概述.NET 数据提供者DataSet 数据集使用数据库数据绑定

Page 5: 第 16 章    Web 服务创建和使用

14.1 ADO.NET 概述 ADO.NET 是美国微软公司最新推出 .NET 平台中的一种数

据访问技术,是专门为 .NET Framework 而设计的,是 ADO 的升级版本; ADO.NET 集成了到 .NET Framework中,可用于任何 .NET 语言,尤其是 C# ; ADO.NET 包括所有的 System.Data 命名空间及其嵌套的命名空间 。ADO.NET 将成为构建 .NET 数据库应用程序的基础。

ADO.NET 类库中提供了用于数据连接、处理数据操作的类。 System.Data 名称空间可以通过数据提供者 (provider) 与数据库通信, ADO.NET 对象允许通过组件连接到数据库,在数据库中进行检索、编辑、删除和插入数据,并在程序中处理数据。 ADO.NET 支持已连接环境和非连接环境的数据访问。

Page 6: 第 16 章    Web 服务创建和使用

14.1.1 ADO.NET 架构 ADO.NET 架构的两个主要组件

Data Provider (数据提供者)DataSet (数据集)

Page 7: 第 16 章    Web 服务创建和使用

14.1.2 .NET Framework 数据提供程序

1..NET Framework 有四种数据提供程序.NET Framework 有以下四种数据提供程序:SQL Server .NET Framework 数据提供程

序。OLE DB .NET Framework 数据提供程序。ODBC .NET Framework 数据提供程序。Oracle .NET Framework 数据提供程序。

Page 8: 第 16 章    Web 服务创建和使用

14.1.2 .NET Framework 数据提供程序

2. .NET Data Provider 核心类.NET Framework 数据提供程序包括四个核心类,用于实现对数据库的数据处理。(1) Connection 对象数据库应用程序和数据库进行交互要在建立数据库连接的基础上进行。 Connection

对象成为连接对象,提供了对数据存储中正在运行的事务( Transaction )的访问技术。

(2) Command 对象Command 对象用于执行数据库的命令操作,命令操作包括检索( Select )、插入

(Insert) 、删除( Delete )以及更新( Update )操作。 (3) DataAdapter 对象DataAdapter (数据适配器)对象在 DataSet 对象和数据源之间架起了一座“桥

梁”。 DataAdapter 可以用数据源填充 DataSet 并解析更新。(4) DataReader 对象数据流提供了高性能的、前向的数据存取机制。通过 DataReader 可以轻松而高效

地访问数据流。 DataReader 对象用于从数据库中读取由 SELECT 命令返回的只读的数据流,在这个过程中一直保持与数据库的连接。

Page 9: 第 16 章    Web 服务创建和使用

14.1.3 DataSet 数据集

ADO.NET 的一个比较突出的特点是支持离线访问,即在非连接环境下对数据进行处理, DataSet 是支持离线访问的关键对象,它将数据存储在缓存中。 DataSet 对象不关心数据源的类型,它将信息以表的形式存放。 DataSet 对象是非连接存储和处理关系的基础。

Page 10: 第 16 章    Web 服务创建和使用

14.1.4 ADO.NET 的设计目标 简单地访问关系数据 可扩展性

ADO.NET具有良好的可扩展性 —— 它为 .NET 数据提供者插件提供了框架,这些提供者可用于从任何数据源读写数据

支持多层应用程序 ADO.NET 使用开放的 XML 标准格式在层之间通信,

允许数据通过 Internet防火墙来传递,并允许以非 Microsoft 技术实现一层或多层

统一 XML 和关系数据访问 XML文档具有分层的数据结构。 .NET 技术是以 XML

为基础构建的, ADO.NET 可以扩展 .NET 的用法,沟通行、列和 XML文档中的关系数据

Page 11: 第 16 章    Web 服务创建和使用

14.2 ADO.NET 对象 ADO.NET 类之间的关系

Page 12: 第 16 章    Web 服务创建和使用

提供者对象 提供者对象就是指在每一个 .NET 数据提

供者中定义的对象,其名称前带有特定提供者的名称 连接对象 命令对象 CommandBuilder 对象 DataReader 对象DataAdapter 对象

Page 13: 第 16 章    Web 服务创建和使用

14.2.1 Connection 对象 在 C#.NET 中,通过 Connection 对象实现

数据连接,并且在使用过程中,根据不同的数据库的类型使用不同的 Connection控件。在 ADO.NET Connection 类中有两个子类,一个是 SqlConnection ;另一个是OleDbConnection 。

Page 14: 第 16 章    Web 服务创建和使用

14.2.1 Connection 对象 在 C#.NET 中,通过 Connection 对象实现

数据连接,并且在使用过程中,根据不同的数据库的类型使用不同的 Connection控件。在 ADO.NET Connection 类中有两个子类,一个是 SqlConnection ;另一个是OleDbConnection 。

Page 15: 第 16 章    Web 服务创建和使用

14.2.1 Connection 对象 1.Connection 对象常用属性有:ConnectionString属性:用来指定要连接的数据源。在 C

onnectionString属性中,需要使用很多参数。如: Data Source 用来指明数据源; Initial Catalog 用来指明数据库;Integrated Security 用来指明集成安全等。

ConnectionTimeout属性:获取在尝试建立连接时终止尝试并生成错误之前所等待的时间。返回结果:等待连接打开的时间(以秒为单位)。默认值为 15 秒。

Database属性:获取当前数据库或连接打开后要使用的数据库的名称。返回结果:当前数据库的名称或连接打开后要使用的数据库的名称。默认值为空字符串。

DataSource属性:获取要连接的数据源实例的名称。

Page 16: 第 16 章    Web 服务创建和使用

14.2.1 Connection 对象 2. Connection 对象常用方法Connection 对象最常用的方法有 Open 和

Close方法。Open ()方法:该方法用于打开由 Con

nectionString属性指定的数据源连接。Close方法():该方法用于断开由 Con

nectionString属性指定的数据源连接。

Page 17: 第 16 章    Web 服务创建和使用

14.2.1 Connection 对象 3. Connection 对象的创建 创建一个 SqlConnection 对象的方法如下:String connectionString="DataSource=yangjianjun\

SQLExpress;Provade=SQLOLEDB.1;Initial Catalog=Northwind;Integrated Security=True";

SqlConnection con = new SqlConnection();con.ConnectionString = connectionString;OleDbConnection 对象的创建方法和 SqlConnectio

n 对象的创建方法类似。例如:OleDbConnection con = new OleDbConnection ();

Page 18: 第 16 章    Web 服务创建和使用

14.2.2 Command 对象 通过编程的方法创建一个 Command 对象:SqlCommand command = new SqlComma

nd ();或OleDbCommand command = new OleDbCo

mmand();

Page 19: 第 16 章    Web 服务创建和使用

14.2.3 DataAdapter 对象 DataAdapter 对象是 ADO.NET 新增加。在

ADO.NET DataAdapter 类中有两个子类,一个是 SqlDataAdapter 类;另一个是 OleDbDataAdapter 类。

DataAdapter 对象包含有 SelectCommand 、InsertCommand 、 UpdateCommand 和 DelectCommand 四个属性,用来定义处理数据存储中数据的命令,并且每个命令都是对 Command 对象的一个引用,可以共享同一个数据源。

Page 20: 第 16 章    Web 服务创建和使用

14.2.3 DataAdapter 对象 通过编程的方法创建一个 DataAdapter 对象:SqlDataAdapter dataAdapter = new SqlDat

aAdapter ();或OleDbDataAdapter dataAdapter = new OleD

bDataAdapter (); 。

Page 21: 第 16 章    Web 服务创建和使用

14.2.4 DataReader 对象 DataReader 对象用于对数据库的操作。在

ADO.NET DataReader 类中有两个子类,一个是 SqlDataReader 类;另一个是 OleDbDataReader 类。

通过编程的方法创建一个 DataReader 对象:SqlDataReader reader = command.Execute

Reader();或OleDbDataReader reader = command.Exec

uteReader();

Page 22: 第 16 章    Web 服务创建和使用

14.2.4 数据集对象 数据集对象位于 System.Data 命名空间中,用于

定义 ADO.NET 的断开的、客户端的对象,包括DataSet 、 DataTable 、 DataRow 、 DataColumn 和 DataRelation等 DataSet 是数据集对象中的首要对象,此对象表示一组相关表

DataTable 对象代表 DataSet 中的一个表 DataTable 对象的 Rows 和 Columns分别是 DataRow

和 DataColumn 对象,可用于访问 DataTable 表中的行和列

DataRelation 对象代表通过共享列而发生关系的两个表之间的关系

Page 23: 第 16 章    Web 服务创建和使用

14.2.4 数据集对象

DataSet 对象的创建可以通过工具栏中的控件实现;通过菜单“数据” |“生成数据集”来实现;或者选择 DataAdapter 对象,单击右上角的黑三角(智能标记),在下拉表中选择“生成数据集…”,这时,会弹出“生成数据集”对话框。如图 14-15 所示。

Page 24: 第 16 章    Web 服务创建和使用

14.2.4 数据集对象

填充 DataSet 对象: DataSet 对象是一个必须填充的容器,

填充方法有多种:调用 DataAdapter的 Fill方法、手工填充、复制或合并其它 DataSet 的数据。我们这里介绍使用 DataAdapter 的 Fill方法填充 DataSet 对象。

Page 25: 第 16 章    Web 服务创建和使用

14.3 使用数据库 在 C#代码中使用 ADO.NET 的第一步就是引用 System.Data

命名空间,该命名空间中含有所有的 ADO.NET 类。接着,需要根据数据源的类型不同,而引用相应的数据提供者。SQL Server .NET 数据提供者: SQL Server 数据库 , 使用 using指令引用 System.Data.SqlClient 。

Oracle .NET 数据提供者: Oracle 数据库,内置 Oracle .NET驱动程序是最佳选择, System.Data.OracleClient ;另外, Oracle 本身也提供了一个 .NET 数据提供者, Oracle.DataAccess.Client

OLE DB .NET 提供者: Microsoft Access , System.Data.OleDbODBC .NET 数据提供者:如果数据源没有内置的或 OLE DB 提供者,则可以使用 ODBC.NET 数据提供者 System.Data.Odbc

其他内置的 .NET 数据提供者:如果数据库有专用的内置 .NET 数据提供者,就可以使用它

Page 26: 第 16 章    Web 服务创建和使用

14.3.1 创建数据库 创建数据库可以使用 Sqlcmd 命令来完成。

SDK 示例所使用的 SQL Server Express 实例的名称是“ SQLExpress” 。要访问该数据库,请使用服务器名称: (local)\SQLExpress 。

<SDK 提示符 > sqlcmd -S (local)\SQLExpress -E -d <database>

为了知道自己计算机名称( local ),可以在运行 sqlcmd 命令之前先在命令提示窗口中运行一下 hostname 命令。

Page 27: 第 16 章    Web 服务创建和使用

14.3.2 DataGridView 控件 DataGridView控件使程序员可在自定义的网格中显示数据。

DataGridView 控件主要属性ReadOnly :该值指示用户是否可以编辑 System.W

indows.Forms.DataGridView 控件的单元格。DataSource :获取或设置 System.Windows.Form

s.DataGridView 所显示数据的数据源。DataMember :获取或设置数据源中 System.Wind

ows.Forms.DataGridView 显示其数据的列表或表的名称。

CurrentRow :获取包含当前单元格的行。

Page 28: 第 16 章    Web 服务创建和使用

14.3.2 DataGridView 控件 BindingSource 类是和 DataGridView 控件经常配

合使用的一个类。 BindingSource 类的主要属性如下:

public object DataSource { get; set; } :获取或设置连接器绑定到的数据源。返回结果:作为数据源的 System.Object 。默认为 null 。

public string DataMember { get; set; } : 获取或设置连接器当前绑定到的数据源中的特定列表。返回结果: System.Windows.Forms.BindingSource.DataSource 中的列表(或行)的名称。默认值为空字符串。

Page 29: 第 16 章    Web 服务创建和使用

14.3.3 使用数据窗体向导完成数据库访问

使用数据窗体向导创建简单数据库应用程序是快捷简便的途径,用户仅需要按向导提示回答若干问题,即可生成一个具有基本数据库管理功能的应用程序。以创建一个处理数据库 Noethwind.dbo 的数据库应用程序了解数据库窗体向导的创建。

创建数据源 预览数据 在应用程序中显示数据

Page 30: 第 16 章    Web 服务创建和使用

14.3.4 使用 DataReader完成数据库访问

使用 DataReader 读取数据的过程如下:( 1 )连接数据源;( 2 )打开连接;( 3 )执行 SQL查询命令。( 4 )使用 DataReader 读取并显示数据。( 5 )关闭 DataReader 和连接。

Page 31: 第 16 章    Web 服务创建和使用

14.4 数据绑定 数据绑定就是将一个控件的属性与一个数据源连

接起来。大多数 Windows窗体控件的属性都可以连接或绑定到一个数据源。一经绑定,数据源中值就会改变绑定的控件的属性,反之亦然。

Windows窗体控件支持两种类型的数据绑定:简单绑定和复杂绑定。简单数据绑定允许你将将一个控件或窗体的属性绑定到数据源中的单个值。而复杂数据绑定专门用于将一个控件连接到一系列的值。简单数据绑定适合只显示一个值的控件,如 Label 、 Text等之类的控件。复杂数据绑定适合能显示多个值的控件,如: ListBox 、 CheckedListBox 、 ComboBox 、和 DataGridView等。

Page 32: 第 16 章    Web 服务创建和使用

14.4 数据绑定 在常用控件中,往往要使用数据绑定实现

数据库应用程序的开发。实现数据绑定的一般步骤如下:

无论是简单数据绑定,还是复杂数据绑定,要实现数据绑定的第一步就是就是要连接数据库,得到可以操作的 DataSet 。

根据不同组件,采用不同的数据绑定。

Page 33: 第 16 章    Web 服务创建和使用

使用数据集对象 DataSet 是 ADO.NET 中的核心对象,所有复杂的

操作都是使用它来完成的。 DataSet 包含一组 DataTable 对象,表示所操作的数据库表。每个 DataTable 对象又都有一些子对象: DataRow 和 DataColumn ,表示数据库表中的行和列。通过这些对象可以获取表、行和列中的所有元素。

为应用程序添加数据源添加绑定控件将控件与数据源绑定的方法就是通过“属性”窗口,修改控件的“ Data Source”属性

Page 34: 第 16 章    Web 服务创建和使用

14.5 修改数据库 修改数据库可以使用 DataSet来完成,也

可以使用编程的方法去完成。

Page 35: 第 16 章    Web 服务创建和使用

14.5 修改数据库 1 .使用 DataSet 修改数据库 对数据库的修改操作可以用相同的模式完

成:( 1 )用数据库中要使用的数据填充数据集 Dat

aSet 。( 2 )修改存储在 DataSet 中的数据,例如,更

新、插入和删除记录。( 3 )完成了所有的修改操作后,把 DataSet 中

所作的修改更新到数据库中。

Page 36: 第 16 章    Web 服务创建和使用

14.5 修改数据库 2 .结构化查询语言SQL(Structured Query Language ,结构化查询语言 ) 是操

作所有关系型数据库的标准语言。其常用主要命令如下。读取表格内容:SELECT * FROM tableName向表格插入一条记录:INSERT INTO table1 VALUES(字段值 1 ,字段值 2 ,… )查询满足特定条件的记录:SELECT * FROM tableName WHERE条件表达式从表格删除记录:DELETE FROM tableName WHERE 条件表达式

Page 37: 第 16 章    Web 服务创建和使用

14.5 修改数据库 3 .增加记录增加数据记录可以通过 DataSet控件实现,首先创建一个新

行,使用 NewRow方法或 Add方法将新数据行添加到数据表的 DataRow 集合中,调用 DataAdapter 的 Update方法实现数据库的更新,并调用 DataSet 的 AcceptChanges 接受更改。如:

DataTable mytable=dataSet11.Tables["txb "];object[] o={2,"李信 ","67691567","13523644158","45000

8",};mytable.Rows.Add(o);oleDbDataAdapter1.Update(dataSet11);dataSet11.AcceptChanges();

Page 38: 第 16 章    Web 服务创建和使用

14.5 修改数据库 4 .删除记录删除表中的元素可以从 DataTable 对象中删

除 DataRow 对象,使用 Delete方法。如:DataTable mytable=dataSet11.Tables["txb"];

mytable.Rows[1].Delete();

oleDbDataAdapter1.Update(dataSet11);

dataSet11.AcceptChanges();

Page 39: 第 16 章    Web 服务创建和使用

14.5 修改数据库 5 .更新记录 应用程序中的数据更新应及时反映在数据

库的操作上,如通过 dataSet修改了相应的数据,则要把该修改表现在数据库中,因为 dataSet 和 DataAdapter相互传送数据,则对数据的更改通过 DataAdapter 的 Update()方法实现。

Page 40: 第 16 章    Web 服务创建和使用

谢谢!