大家都喜欢用AOP.NET访问数据库,AOP.NET经过长时间的发展,这里我发表一下个人理解,和大家讨论讨论。还是希望可以给大家带来技术上的提高。DataAdapter数据适配器用于在数据源和数据集之间交换数据。在许多应用程序中,这意味着从数据库将数据读入数据集,然后从数据集将已更改数据写回数据库。通常DataAdapter数据适配器是可以配置的,允许指定哪些数据移入或移出数据集。这经常采用的形式是对SQL语句或存储过程的引用,这些语句或存储过程被调用时即可实现对数据库进行读写。
每个数据适配器DataAdapter都将在单个数据源表和数据集内的单个DataTable对象之间交换数据。如果数据集包含多个数据表,通常的策略是令多个数据适配器向数据集提供数据,并将其数据写回各个数据源表。
#T#AOP.NET DataAdapter对象表示一组数据命令和一个数据库连接,用于填充DataSet对象和更新数据源。作为DataSet对象和数据源之间的桥接器,通过映射Fill()方法向DataSet填充数据,通过Update()方法向数据库更新DataSet对象中的变化。这些操作实际上是由AOP.NET DataAdapter对象包含的Select、Update、Insert、Delete四种Command命名对象实现的。也可以直接结合Command对象的使用来完成数据的操作。AOP.NET DataAdapter对象的工作原理请参见图所示:
DataAdapter对象的工作原理图
在客户端应用程序需要处理数据源的数据时,客户端应用程序与数据源之间建立连接。引用数据命令的DataAdapter对象向数据源发送数据命令请求,这个请求是执行DataAdapter对象的Fill()方法来完成“填充”操作时发送并被数据源执行的。数据源的数据就会填充到客户端的DataSet对象,在DataSet对象内部形成具有跟数据源数据结构一致的数据表DataTable对象,而DataTable对象内部有包含表示数据结构的DataColumn对象集合和表示数据约束的Constraint对象集合,还含有表示数据记录的DataRow对象的集合。数据以及数据结构填充到DataSet对象后,DataSet数据集相当于一个脱机数据库,客户端应用程序操作的数据完全从DataSet数据集中获取。这是客户端DataSet数据集与数据源之间可以断开连接,也就是说它们之间的关系是非***连接关系。只有客户端完成数据操作需要将数据回传给数据源时,再次建立连接。由DataAdapter对象再次向数据源发送数据命令请求,这个请求是执行DataAdapter对象的Update()方法来完成“更新”操作时发送并被数据源执行的。执行后,连接再次断开。.NET提供程序及其DataAdapter类,请参见表所示:
提供程序 |
DataAdapter类 |
SQL数据提供程序 |
SqlDataAdapter |
OLE DB数据提供程序 |
OleDbDataAdapter |
Oracle数据提供程序 |
OracleDataAdapter |
ODBC数据提供程序 |
OdbcDataAdapter |