




已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第第1919章章 在程序中访问数据库在程序中访问数据库 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与.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对象。 执行命令,如果命令使数据按表中行的形式 返回,则将这些数据存储在易于检查、操作 或更改的缓存Recordset中。 在适当情况下,可以通过修改缓存行的内容 来更新数据源。 结束操作,释放数据连接Connection和内存 中的缓存Recordset,关闭操作命令 Command。 19.2.2 ADO.NET与ADO的关系 ADO与ADO.NET既相似也有区别,它们的相似之处是 都能够编写对数据库服务器中的数据进行访问和操作的 应用程序,并且易使用、高速度、低内存消耗且占用磁 盘空间较少,支持建立基于客户端/服务器和Web的应用 程序的功能。它们的主要区别如下。 ADO使用OLE DB接口并基于微软的COM技术,而ADO.NET 拥有自己的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数据提供程序。 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类:从数据源中读取只向前的只读数据 流,它是一个简易的数据流。 DataAdapter类:用于将数据源的数据填充至 DataSet数据集并解析更新数据集。可以说, DataAdpater类是.NET数据提供程序与DataSet之间 的一座桥梁。 19.3.2 Connection类 Connection类用于连接数据库,也可使 用Command类,它会隐含创建一个 Connection对象。 在使用Connection类时,一般可以使用 无参数的构造函数创建Connection类实 例,然后设置ConnectionString属性, 也可以直接使用带参数的构造函数创建 Connection类实例。 19.3.2 Connection类 示例: 使用无参数的构造函数来创建Connection对象 ,其语法形式如下。 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;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:设置数据库访问者的密码。 Connection对象的常用方法如下。 Open()方法:建立数据库连接。当创建完 Connection对象之后,应调用Open()方法才能建立 数据库连接。 Close()方法:断开数据库连接。当数据库连接使用 完毕后,应调用Close()方法及时断开数据库连接。 19.3.3 Command类 Command类用于完成对数据源的各种操作,包括查询、插入、删 除、更新操作。可以使用SQL语句来完成这些操作。 示例: 使用无参数构造函数来创建SqlCommand对象,例如下列代码。 SqlCommand command = new SqlCommand(); command.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语句 且只能是查询语句和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为存储过程名称。 Connection属性:表示Command类使用的Connection对象 。 Parameters属性:该属性用于表示与SqlCommand对象相关 联的参数的集合。 Command对象的常用方法如下。 ExecuteReader方法:返回DataReader对象,包含一个或多 个行。 ExecuteNonQuery方法:执行非查询的SQL语句并返回受影响 的行数。 ExecuteScalar方法:返回结果集中第一行的第一列,常用于 当SQL语句查询聚合值时,返回聚合值,例如查询某班的学生 人数。 19.3.3 Command类 示例: static void Main(string args) 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.CommandType = CommandType.Text; myCom.ExecuteNonQuery(); myCon.Close(); 19.3.4 DataSet类 DataSet是物理数据库在本地内存中的表示形式 ,通过使用数据集可以在无连接的情况下访问 数据库。 DataSet中包含的数据对象及其相互间的关系: 数据表(DataTable):数据源中的数据表在内存中 的表示。 数据列(DataColumn):用于描述DataTable中的 列(记录)。 数据行(DataRow):用于描述DataTable中的行( 记录)。 表间关系(DataRelation):表示不同表中两列数据 间的关系(如主键与外键)。 约束(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 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“数据表名 “.Rowsn.ItemsArrayk 更新数据集:对数据集的更新包括向数据表中添加一行 数据、从数据表中删除一行数据及修改数据表中的某一 条记录的列值。 更新数据源 :当更新数据集后,可以通过DataAdapter 对象的Update()方法同步更新数据源。 注意使用Update()方法更新数据源之前,需要设置 DataAdapter对象的命令属性,包括InsertCommand、 DeleteCommand和UpdateCommand,有了这些命令属性, DataAdapter对象的Update()方法才会有效,否则会产生异常 。 DataReader类用于从数据源中检索只读 、只进的数据流,其最大的特点是 DataReader对象以“基于连接”的方式访 问数据库。 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 SqlConnection(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.GetString(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。这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 SqlConnection(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 编号 = TP0003“; 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数据提 供程序。 使用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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工业安全实操培训的作用
- 工业安全培训模板课件
- 委外单位安全培训记录课件
- FHND5071-1H-生命科学试剂-MCE
- exo-α-1-2-Fucosidase-Bifidobacterium-bifidum-生命科学试剂-MCE
- 西安国医医院招聘笔试真题2024
- 平遥安全培训课件
- 农发行安康市紫阳县2025秋招半结构化面试15问及话术
- 农发行大连市沙河口区2025秋招笔试热点题型专练及答案
- 农发行邢台市沙河市2025秋招笔试综合模拟题库及答案
- 2025年高考英语全国二卷重点核心词汇归纳总结(复习必背)
- 2025地质资料馆藏管理规范第1部分:实物
- GB/T 26925-2025节水型企业火力发电行业
- 店铺转让分期协议书
- 涉嫌强奸和解协议书
- 智慧中小学培训
- 《创伤弧菌脓毒症临床诊治急诊专家共识》详细解读
- 2025年江苏省无锡市惠山区中考一模英语试题(含答案)
- 《中国进口牛肉评估》课件
- 仓库盘点盈亏分析报告
- 小学音乐人音版三年级上册维也纳的音乐钟教案
评论
0/150
提交评论