ADO.NET数据集工作原理机制分析

开发 后端
文章这里详细的介绍了ADO.NET数据集工作原理还有通过编码创建DataSet对象,新建窗体命名为Form5.cs的简单案例分析。

ADO.NET经过长时间的发展,很多用户都很了解ADO.NET了,这里我发表一下个人理解,和大家讨论讨论。ADO.NET数据集工作原理请参见图所示:

ADO.NET数据集工作原理图
 

ADO.NET数据集工作原理图

所示的过程就是数据集DataSet的工作原理。首先,客户端与数据库服务器端建立连接。然后,由客户端应用程序向数据库服务器发送数据请求。数据库服务器接到数据请求后,经检索选择出符合条件的数据,发送给客户端的数据集,这时连接可以断开。

#T#接下来,数据集以数据绑定控件或直接引用等形式将数据传递给客户端应用程序。如果客户端应用程序在运行过程中有数据发生变化,它会修改数据集里的数据。当应用程序运行到某一阶段时,比如应用程序需要保存数据,就可以再次建立客户端到数据库服务器端的连接,将数据集里的被修改数据提交给服务器,最后再次断开连接。

把这种不需要实时连接数据库的工作过程叫做面向非连接的数据访问。在DataSet对象中处理数据时,客户端应用程序仅仅是在本地机器上的内存中使用数据的副本。这缓解了数据库服务器和网络的压力,因为只有在首次获取数据和编辑完数据并将其回传到数据库时,才能连接到数据库服务器。

虽然这种面向非连接的数据结构有优点,但还是存在问题。当处于断开环境时,客户端应用程序并不知道其他客户端应用程序对数据库中原数据所做的改动。很有可能得到的是过时的信息。

案例学习:通过编码创建DataSet对象,新建窗体命名为Form5.cs,双击Form5的窗体界面,进入后台编码区域,在其窗体加载初始化事件中键入如下代码:

  1. privatevoidForm5_Load(objectsender,EventArgse)  
  2. {  
  3. //建立SQLServer数据库连接  
  4. stringconnstring="DataSource=(local);InitialCatalog=school;UserID=sa";  
  5. SqlConnectionconnection=newSqlConnection(connstring);  
  6. connection.Open();  
  7. stringsqlstring="select*fromstudent";  
  8. SqlCommandmycom=newSqlCommand(sqlstring,connection);  
  9. SqlDataAdapteradapter=newSqlDataAdapter();  
  10. adapter.SelectCommand=mycom;  
  11. //创建DataSet对象  
  12. DataSetSQLds=newDataSet();  
  13. adapter.Fill(SQLds);//通过SqlDataAdapter对象填充DataSet对象  
  14. //释放数据库连接资源。要养成了好的编程习惯,操作完数据后记住打扫垃圾!  
  15. connection.Dispose();  
  16. connection.Close();  
  17. connection=null;  


 

责任编辑:田树 来源: 博客
相关推荐

2011-05-20 15:45:52

数据集

2009-10-29 10:00:53

ADO.NET数据集

2009-10-29 10:10:10

ADO.NET数据集类

2009-11-04 13:51:46

ADO.NET性能

2009-11-11 15:09:35

ADO.NET数据集

2009-12-25 16:36:43

ADO.NET数据集

2009-12-30 14:59:42

ADO.NET数据集

2009-10-29 10:20:19

ADO.NET使用

2010-01-04 13:47:18

ADO.NET数据集

2009-11-13 09:53:47

ADO.NET权限集

2009-11-03 15:47:10

ADO.NET数据异步

2009-12-29 14:41:13

ADO.NET 数据集

2009-11-13 09:45:54

ADO.NET程序集

2009-12-30 15:06:22

ADO.NET分析

2009-11-04 11:02:23

ADO.NET Dat

2009-12-23 17:50:38

ADO.NET Fra

2009-10-29 11:18:47

ADO.NET SQL

2009-12-22 16:16:18

ADO.NET Deb

2009-12-30 16:13:52

ADO.NET 2.0

2009-11-04 11:40:38

ADO.NET Dat
点赞
收藏

51CTO技术栈公众号