在程序中访问数据.ppt_第1页
在程序中访问数据.ppt_第2页
在程序中访问数据.ppt_第3页
在程序中访问数据.ppt_第4页
在程序中访问数据.ppt_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第19章 在程序中访问数据库,19.1 ADO.NET与.NET 19.2 ADO.NET与ADO 19.3 深入ADO.NET 19.4 数据控件 19.5 数据绑定控件 19.6 小结,19.1 ADO.NET与.NET,ADO.NET由微软公司推出,基于.NET平台,面向分布式,是以XML数据格式为核心的一种数据库访问技术,其主要特点如下。 ADO.NET是.NET框架中非常重要的一部分,且ADO.NET必须在.NET框架支持下才能运行。 XML是ADO.NET的基础,即从数据源里获取的数据都是以XML格式保存。 ADO.NET的主要功能就是提供数据访问类。,19.1 ADO.NET与.

2、NET,ADO.NET体系结构,19.2 ADO.NET与ADO,19.2.1 ADO概述 数据访问方式的发展阶段: ODBC(Open Database Connectivity) OLEDB(Object Linking and Embedding Database) ADO(ActiveX Data Objects) ADO的常用3个对象如下。 Connection对象 Command对象 Recordset对象,19.2.1 ADO概述,典型的ADO对象编程步骤: 连接到数据源。 指定访问数据源的命令,可以同时指定变量参数,通常会涉及到Command对象。 执行命令,如果命令使数据按表

3、中行的形式返回,则将这些数据存储在易于检查、操作或更改的缓存Recordset中。 在适当情况下,可以通过修改缓存行的内容来更新数据源。 结束操作,释放数据连接Connection和内存中的缓存Recordset,关闭操作命令Command。,19.2.2 ADO.NET与ADO的关系,ADO与ADO.NET既相似也有区别,它们的相似之处是都能够编写对数据库服务器中的数据进行访问和操作的应用程序,并且易使用、高速度、低内存消耗且占用磁盘空间较少,支持建立基于客户端/服务器和Web的应用程序的功能。它们的主要区别如下。 ADO使用OLE DB接口并基于微软的COM技术,而ADO.NET拥有自己的

4、ADO.NET接口并且基于微软的.NET体系架构。 ADO以Recordset存储,而ADO.NET则以DataSet表示。 总之,由于ADO使用COM技术,这就要求所使用的数据类型必须符合COM规范,而ADO.NET基于XML格式,XML灵活多变的基于文本的结构使得它能够应用于相当广泛的网络作业,并且不需要再做COM编排导致的数据类型转换,从而提高了平台互用性和整体性能。,19.3 深入ADO.NET,19.3.1 .NET数据提供程序 .NET Framework数据提供程序用于连接到数据库、执行命令和检索结果。.NET Framework提供了如下几个.NET Framework数据提供

5、程序。 OLE DB .NET Framework数据提供程序。 SQL Server .NET Framework数据提供程序。 ODBC .NET Framework数据提供程序。 Oracle .NET Framework数据提供程序。,19.3.1 .NET数据提供程序,.NET Framework数据提供程序提供了4个核心类,这4个核心类其功能如下。 Connection类:建立与特定数据源的连接。 Command类:对数据源执行数据库命令,用于返回数据、修改数据、运行存储过程以及发送或检索参数信息等。 DataReader类:从数据源中读取只向前的只读数据流,它是一个简易的数据流。

6、 DataAdapter类:用于将数据源的数据填充至DataSet数据集并解析更新数据集。可以说,DataAdpater类是.NET数据提供程序与DataSet之间的一座桥梁。,19.3.2 Connection类,Connection类用于连接数据库,也可使用Command类,它会隐含创建一个Connection对象。 在使用Connection类时,一般可以使用无参数的构造函数创建Connection类实例,然后设置ConnectionString属性,也可以直接使用带参数的构造函数创建Connection类实例。,19.3.2 Connection类,示例: 使用无参数的构造函数来创建C

7、onnection对象,其语法形式如下。 string str = Data Source=localhost;Initial Catalog=book;Persist Security Info=True;User ID=admin;Password=123; SqlConnection sqlcon = new SqlConnection(); Sqlcon. ConnectionString= str; 利用带参数的构造函数创建SqlConnection实例,其语法形式如下。 string str = Data Source=localhost;Initial Catalog=book;

8、Persist Security Info=True;User ID=admin;Password=123; SqlConnection sqlcon = new SqlConnection(str);,19.3.2 Connection类,SqlConnection连接字符串中各项的意义如下。 Data Source:设置要连接的SQL Server实例所在的服务器名或网络地址,localhost表示本机。 Initial Catalog:设置要连接的数据库名。 Persist Security Info:表示是否保存安全信息。 User ID:设置数据库访问者的姓名。 PassWord:设

9、置数据库访问者的密码。 Connection对象的常用方法如下。 Open()方法:建立数据库连接。当创建完Connection对象之后,应调用Open()方法才能建立数据库连接。 Close()方法:断开数据库连接。当数据库连接使用完毕后,应调用Close()方法及时断开数据库连接。,19.3.3 Command类,Command类用于完成对数据源的各种操作,包括查询、插入、删除、更新操作。可以使用SQL语句来完成这些操作。 示例: 使用无参数构造函数来创建SqlCommand对象,例如下列代码。 SqlCommand command = new SqlCommand(); command.

10、CommandType = CommandType.Text; command.Connection=myconn; 使用带参数构造函数创建SqlCommand对象,参数为查询Sql语句,而且只能是查询语句,例如下列代码。 string sqlstr = select * from book; SqlCommand command = new SqlCommand(sqlstr); command.CommandType = CommandType.Text; command.Connection=myconn; 使用带参数构造函数创建SqlCommand对象,参数为查询Sql语句且只能是查询

11、语句和SqlConnection对象,例如下列代码。 string sqlstr = select * from book; SqlCommand command = new SqlComman,19.3.3 Command类,Command对象的常用属性如下。 CommandType属性:表示如何解释指令字符串,属性值为Text(SQL文本命令,默认)、StoredProcedure(存储过程)。 CommandText属性:当CommandType为Text时,CommandText为SQL语句;当CommandType为StoredProcedure时,CommandText为存储过程名

12、称。 Connection属性:表示Command类使用的Connection对象。 Parameters属性:该属性用于表示与SqlCommand对象相关联的参数的集合。 Command对象的常用方法如下。 ExecuteReader方法:返回DataReader对象,包含一个或多个行。 ExecuteNonQuery方法:执行非查询的SQL语句并返回受影响的行数。 ExecuteScalar方法:返回结果集中第一行的第一列,常用于当SQL语句查询聚合值时,返回聚合值,例如查询某班的学生人数。,19.3.3 Command类,示例: static void Main(string args)

13、 string myConStr = Data Source=localhost;Initial Catalog=stuinfo;Persist Security Info=false;User ID=admin;Password=123; SqlConnection myCon = new SqlConnection(myConStr); myCon.Open(); string sql = insert into stutable values(03,王珊,信息工程学院); SqlCommand myCom = new SqlCommand(sql, myCon); myCom.Comma

14、ndType = CommandType.Text; myCom.ExecuteNonQuery(); myCon.Close(); ,19.3.4 DataSet类,DataSet是物理数据库在本地内存中的表示形式,通过使用数据集可以在无连接的情况下访问数据库。 DataSet中包含的数据对象及其相互间的关系: 数据表(DataTable):数据源中的数据表在内存中的表示。 数据列(DataColumn):用于描述DataTable中的列(记录)。 数据行(DataRow):用于描述DataTable中的行(记录)。 表间关系(DataRelation):表示不同表中两列数据间的关系(如主键

15、与外键)。 约束(Constraint):定义一些在DataTable中添加和操作数据要遵守的规则。,19.3.4 DataSet类,填充数据集 调用DataAdapter对象的Fill方法 示例: using System.Data.SqlClient; private void Form1_Load(object sender, EventArgs e) string Str = Data Source=localhost;Initial Catalog=book;Persist Security Info=false;User ID=admin;Password=123; string

16、Sql = select * from information; SqlConnection sqlcon = new SqlConnection(Str); DataSet Mydata = new DataSet(); SqlDataAdapter Myadapter = new SqlDataAdapter(Sql, sqlcon); Myadapter.Fill(Mydata, information); sqlcon.Close(); ,19.3.4 DataSet类,访问数据集 格式1:数据集对象名.Tables数据表名.Rowsn列名 格式2:数据集对象名.Tables数据表名.

17、Rowsn.ItemsArrayk 更新数据集:对数据集的更新包括向数据表中添加一行数据、从数据表中删除一行数据及修改数据表中的某一条记录的列值。 更新数据源 :当更新数据集后,可以通过DataAdapter对象的Update()方法同步更新数据源。 注意使用Update()方法更新数据源之前,需要设置DataAdapter对象的命令属性,包括InsertCommand、DeleteCommand和UpdateCommand,有了这些命令属性,DataAdapter对象的Update()方法才会有效,否则会产生异常。,DataReader类用于从数据源中检索只读、只进的数据流,其最大的特点是D

18、ataReader对象以“基于连接”的方式访问数据库。 DataReader类的常用方法 : Read、 NextResult、 Close、 GetName 、GetString、 GetValues,19.3.5 DataReade类,示例: static void Main(string args) string Str = Data Source= localhost;Initial Catalog=book;Persist Security Info=false;User ID=admin;Password=123; SqlConnection Con = new SqlConnec

19、tion(Str); string comStr = select 编号,书名 from information; SqlCommand Com = new SqlCommand(comStr, Con); Con.Open(); SqlDataReader rd = Com.ExecuteReader(); do Console.WriteLine(n); Console.WriteLine(t0ttt1, rd.GetName(0), rd.GetName(1); while (rd.Read() Console.WriteLine(t0tt1, rd.GetString(0), rd.G

20、etString(1); while (rd.NextResult(); rd.Close(); Con.Close(); Console.Read(); ,19.3.5 DataReade类,DataAdapter类也称为数据适配器,是DataSet和数据源之间检索和保存数据的桥梁,用于处理连接的细节。DataAdapter既负责从数据库中检索数据并填充数据集DataSet,又负责将数据集DataSet中对数据的更改回送到数据库。 DataAdapter对象包含4个常用属性,分别为SelectCommand、InsertCommand、UpdateCommand、DeleteCommand。

21、这4个属性均为Command对象,DataAdapter通过上述4个属性来对数据库进行查询、插入、更新和删除操作。上述4种对象初始值均为null,赋值后才能使用。,19.3.6 DataAdapter类,19.3.6 DataAdapter类,示例: static void Main(string args) string Str = server=SISSQLEXPRESS;Initial Catalog=book;Persist Security Info=False;User ID=admin;Password=123; SqlConnection conn = new SqlConne

22、ction(Str); conn.Open(); string comStr = select * from information; SqlCommand comm = new SqlCommand(comStr, conn); SqlDataAdapter myDA = new SqlDataAdapter(); myDA.SelectCommand = comm; DataSet myDS = new DataSet(); myDA.Fill(myDS, information); comm.CommandText=DELETE FROM information WHERE 编号 = T

23、P0003; myDA.DeleteCommand = comm; myDA.Fill(myDS, information); myDA.Update(myDS, information); conn.Close(); myDS.Dispose(); ,19.3.7 ADO.NET原理剖析,ADO.NET的数据访问策略有两种,一种是将数据记录缓存于数据集(Dataset)中;另一种是直接访问数据库并使用数据读取器(DataReader)来读取数据记录。 使用ADO.NET开发数据库应用程序的一般步骤如下。 导入相应的命名空间。 选择使用的数据源,即确定将使用的.NET Framework数据提

24、供程序。 使用Connection对象建立与数据源的连接。 使用Command对象执行对数据源的操作命令,通常是SQL命令。 使用数据集对获得的数据进行操作,需使用DataReader、DataSet等对象。 使用各种数据控件向用户显示数据。,19.4 数据控件,19.4.1 常用的数据控件 DataSet控件:它是一个集合对象,可以包含任意数量的表和视图,还可以包含所有表的约束、索引、关系及存储过程等。 BindingSource控件:主要用于连接数据库,通过该控件,可以将所有Windows窗体控件绑定到数据源。 BindingNavigator控件:绑定数据源后,可以实现数据导航。 DataGridView控件:主要用于显示后台数据库的数据,通常以浏览表格显示。,19.4.2 数据源控件,BindingSource控件其实并不是真正意义上的数据源,而是窗体控件和数据源之间的桥梁,其主要功能为将窗体中的控件绑定到数据源上。,19.5 数据绑定控件,19.5.1 数据绑定控件概述 数据绑定就是使控件与数据源的数据绑定在一起,便于数据访问,而控件可以绑定到几乎所有包含数据的结构,且可以通过绑定的数据设置控件的任何属性。数据绑定可分为简单数据绑定和复杂数据绑定

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论