DataSet

 

DataSet其实就是数据集,上文已经说过DataSet是把数据库中的数据映射到内存缓存中的所构成的数据容器,对于任何数据源,它都提供一致的关系编程模型。在DataSet中既定义了数据表的约束关系以及数据表之间的关系,还可以对数据表中的数据进行排序等。DataSet使用方法一般有三种:

  1. 把数据库中的数据通过DataAdapter对象填充DataSet。

  2. 通过DataAdapter对象操作DataSet实现更新数据库。

  3. 把XML数据流或文本加载到DataSet。

  DataSet使用方法的具体实现,使用语言是C#。

  1. 把数据库中的数据通过DataAdapter对象填充DataSet:

  掌握DataSet使用方法必须掌握ADO.NET另外一个核心常用成员--数据提供者(Data Provider)。数据提供者(也称为托管提供者Managed Provider)是一个类集合,在.Net FrameWork SDK 1.0中数据提供者分为二种:The SQL Server .NET Data Provider和The OLE DB .NET Data Provider。而到了.Net FrameWork SDK 1.1时,ADO.NET中又增加了The ODBC .NET Data Provider和 The Oracle .NET Data Provider二个数据提供者。The SQL Server .NET Data Provider的操作数据库对象只限于Sql Server 7.0及以上版本,Oracle .NET Data Provider的操作数据库对象只限于Oracle 8.1.7及以上版本。而The OLE DB .NET Data Provider和The ODBC .NET Data Provider可操作的数据库类型就相对多了许多,只要它们在本地分别提供Ole Db提供程序和ODBC提供程序。

  在这些数据提供者中都有一个DataAdapter类,如:OLE DB .NET Framework 数据提供者中是 OleDbDataAdapter类,The SQL Server .NET Framework 数据提供者中是SqlDataAdapter类,The ODBC .NET Framework 数据提供者中是OdbcDataAdapter类。通过这些DataAdapter就能够实现从数据库中检索数据并填充 DataSet 中的表。

  DataAdapter填充DataSet的过程分为二步:首先通过DataAdapter的SelectCommand属性从数据库中检索出需要的数据。SelectCommand其实是一个Command对象。然后再通过DataAdapter的Fill方法把检索来的数据填充 DataSet。代码清单01就是以Microsoft SQL Server 中的Northwind数据库为对象,C#使用The SQL Server .NET Data Provider中的SqlDataAdapter填充DataSet的具体实现方法:

  代码清单01:

SqlConnection sqlConnection1 = new SqlConnection ( "Data Source=localhost ;Integrated Security=SSPI ;Initial Catalog=Northwind" ) ;
//创建数据连接
SqlCommand selectCMD = new SqlCommand ( "SELECT CustomerID , CompanyName FROM Customers" , sqlConnection1 ) ;
//创建并初始化SqlCommand对象
SqlDataAdapter sqlDataAdapter1 = new SqlDataAdapter ( ) ;
custDA.SelectCommand = selectCMD ;
sqlConnection.Open ( ) ;
//创建SqlDataAdapter对象,并根据SelectCommand属性检索数据
DataSet dsDataSet1 = new DataSet ( ) ;
sqlDataAdapter1.Fill ( dsDataSet1 , "Customers" ) ;
//使用SqlDataAdapter的Fill方法填充DataSet
sqlConnection.Close ( ) ;
//关闭数据连接

  对于其他数据提供者的DataAdapter,具体的实现检索数据库中的数据并填充DataSet的实现方法类似于以上方法。

  2. 通过DataAdapter对象操作DataSet实现更新数据库:

  DataAdapter是通过其Update方法实现以DataSet中数据来更新数据库的。当DataSet实例中包含数据发生更改后,此时调用Update方法,DataAdapter 将分析已作出的更改并执行相应的命令(INSERT、UPDATE 或 DELETE),并以此命令来更新数据库中的数据。如果DataSet中的DataTable是映射到单个数据库表或从单个数据库表生成,则可以利用 CommandBuilder 对象自动生成 DataAdapter 的 DeleteCommand、InsertCommand 和 UpdateCommand。使用DataAdapter对象操作DataSet实现更新数据库具体的实现方法,只需把下面的代码清单02添加到代码清单01之后,二者合并即可实现删除Customers数据表中第一行数据:

  代码清单02: 

SqlCommandBuilder sqlCommandBuilder1 = new SqlCommandBuilder ( sqlDataAdapter1 ) ;
//以sqlDataAdapter1为参数来初始化SqlCommandBuilder实例
dsDataSet1.Tables["Customers"].Rows[0].Delete ( ) ;
//删除DataSet中删除数据表Customers中第一行数据
sqlDataAdapter1.Update ( dsDataSet1 ,"Customers" ) ;
//调用Update方法,以DataSet中的数据更新从数据库
dsDataSet1.Tables["Customers"].AcceptChanges ( ) ;

阅读更多
想对作者说点什么? 我来说一句

dataset 多表联合查询

2011年11月22日 6KB 下载

Facebook bAbI dataset

2017年03月06日 11.2MB 下载

dataset 多表操作

2011年11月21日 3KB 下载

dataset(ADO&SQL;)

2012年12月16日 126KB 下载

DeepMind Q&A Dataset 里的 cnn.tgz

2017年08月29日 207.37MB 下载

16:DataSet和XML.pdf

2009年05月17日 1.07MB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭