《在断开连接的环境中编辑和更新数据.ppt》由会员分享,可在线阅读,更多相关《在断开连接的环境中编辑和更新数据.ppt(23页珍藏版)》请在三一办公上搜索。
1、ADO.NET(数据源连接),陈皓月,体验,DataAdapter简介,在ADO.NET中,DataSet是数据在内存中的表示形式,它提供了独立于数据源的关系编程模型。,.NET Framework中的DataAdapter 类,.NET Framework 2.0包括DataAdapter类,如下下表所示。,通过Visual Studio 2005创建DataAdapter 通过编程方式创建DataAdapter,通过编程方式创建DataAdapter,SqlDataAdapter 构造函数支持四种重载。此时所使用的重载 SqlDataAdapter(testCommand)允许在构造函数中
2、指定带有有效连接的命令。其他三种可用的重载如下。,SqlDataAdapter():设置SqlDataAdapter的一个空实例SqlDataAdapter(string commandText,SqlConnection connection):允许指定用于填充DataSet/DataTable的命令(作为字符串)以及填充时将用到的连接SqlDataAdapter(string commandText,string connectionString):允许将命令和相关连接都作为字符串来指定;,DataAdapter的属性,DataAdapter所提供的主要属性及其描述如下表所示。,DataA
3、dapter的方法,使用DataAdapter的Fill()方法填充DataSet,DataAdapter有两个重要的方法:Fill()和Update()。前者从数据源把数据加载至DataSet,后者把数据从DataSet传回数据源。,使用 DataAdapter的Update()方法更新DataSet,更新数据时的状态管理,在连接、获取、断开、修改、重新连接和持久保存更改等一系列过程中,可能需要考虑很多事情。,可能需要决定插入、删除或更新某些行其他用户可能同时保存其更改,您在DataSet中所保存的查询数据可能已无效 为新插入的记录所生成的键值可能不正确 在设法进行更新之后,可能需要将当前数
4、据的刷新版本取回应用程序,更新数据时的状态管理,DataRowState枚举的各种值及其相应的含义如下表所示。,创建并使用SqlBulkCopy的步骤如下。,用SqlBulkCopy移动大量数据,首先添加一个新的控制台应用程序,并将其命名为SqlBulkCopy。第三行“张宇”保持不变此应用程序的目的是演示在两个相同结构的表之间可以相当快地复制数据由于该应用程序操作的对象是同一个数据库,因此只需要一个连接字符串;但是,需要两个不同的SqlConnection:一个用于SqlBulkCopy将要读取的DataReader,另一个用于 SqlBulkCopy 本身 应用程序的第二部分使用SqlBu
5、lkCopy对象实例将从创建的DataReader读取的数据插入员工副本表操作完成,代码示例C#,代码示例VB,DataTable公开了一系列可以由应用程序捕获并处理的事件。,DataTable事件,DataColumnChangeEventArgs对象所提供三个属性及其描述如下表所示。,DataTable事件(续),DataRowChangeEventArgs所提供的两个属性及其描述如下表所示。,DataTable事件(续),DataTableClearTableEventHandler所提供的三个属性及其描述如下表所示。,DataTable事件(续),如前所述,DataTable事件可以分
6、成以下三大类别。,基于列的:ColumnChanging,ColumnChanged基于行的:RowChanging,RowChanged,RowDeleting,RowDeleted基于表的:TableClearing,TableCleared,TableNewRow,DataTable事件(续),使用GetChanges方法的时机,GetChanges和Merge,在DataSet中获得更改的示例,将更改合并到DataSet,习题,1.多选题:以下关于DataAdapter对象的描述,_是正确的。A.DataAdapter对象可以用来检查查询结果B.DataAdapter对象可以作为数据库
7、和断开连接对象之间的网桥C.DataAdapter对象可提取查询结果以便脱机时使用D.DataAdapter对象可以把脱机使用时所做的更改提交到数据库中,习题(续),2.多选题:DataSet和DataAdapter之间的区别是_。A.DataSet在断开连接的缓存中存储数据B.DataAdapter对象是DataSet和数据源之间检索或保存数据的桥梁C.DataSet公开由表、行和列所组成的分层对象模型D.DataAdapter类表示一组数据库命令以及可用做填充DataSet和更新数据源的数据库连接,习题(续),3.多选题:方法_能更有效地使用DataAdapter填充DataSet。A.使
8、用与DataAdapter所传入的数据结构相同的类型化DataSetB.在填充DataSet之前,调用BeginLoadData()方法C.在使用多个有相同连接的DataAdapter填充DataSet之前,显式地打开连接D.使用DataAdapter对象的TableMappings集合,习题(续),4.为了将数据更改持久地保存到数据源,将按_顺序调用各种方法。(1)调用Update()方法(2)调用GetChanges()方法(3)调用Merge()方法(4)调用AcceptChanges()方法A.(1)(2)(3)(4)B.(4)(1)(2)(3)C.(2)(3)(1)(4)D.(1)(3)(4)(2),习题(续),5.准备将记录从一个数据库传输到另一个数据库。只需确保源数据库是 Microsoft SQL Server,就能使用 SqlBulkCopy 类来传输记录吗?,习题(续),6.在DataSet 和 DataTable 对象中,可通过设置SqlDataAdapter 的_属性来批量传输数据库之间的数据,也可通过_方法,筛选出 DataTable 或 DataSet 被更改的部分。还可以通过_方法,指定 DataSet、DataTable 或 DataRow 对象的数组合并为 DataSet。,