图文演示ADO.NET数据集工作原理
创始人
2024-06-10 03:30:17
0

我想程序员都知道数据集的概念,但是你知道ADO.NET数据集的工作原理机制吗?我在网上收集了许多资料,自己也从工作中总结了一点经验。下面我们就一起来看看吧!ADO.NET数据集数据集DataSet的工作原理请参见图所示:

DataSet的工作原理


图所示的过程就是ADO.NET数据集DataSet的工作原理。首先,客户端与数据库服务器端建立连接。然后,由客户端应用程序向数据库服务器发送数据请求。数据库服务器接到数据请求后,经检索选择出符合条件的数据,发送给客户端的数据集,这时连接可以断开。接下来,数据集以数据绑定控件或直接引用等形式将数据传递给客户端应用程序。如果客户端应用程序在运行过程中有数据发生变化,它会修改数据集里的数据。当应用程序运行到某一阶段时,比如应用程序需要保存数据,就可以再次建立客户端到数据库服务器端的连接,将数据集里的被修改数据提交给服务器,最后再次断开连接。
把这种不需要实时连接数据库的工作过程叫做面向非连接的数据访问。在DataSet对象中处理数据时,客户端应用程序仅仅是在本地机器上的内存中使用数据的副本。这缓解了数据库服务器和网络的压力,因为只有在首次获取数据和编辑完数据并将其回传到数据库时,才能连接到数据库服务器。

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

案例学习:通过编码创建DataSet对象

新建窗体命名为Form5.cs,双击Form5的窗体界面,进入后台编码区域,在其窗体加载初始化事件中键入如下代码:

  1. private void Form5_Load(object sender, EventArgs e)  
  2. {  
  3. //建立SQL Server数据库连接  
  4. string connstring = "Data Source=(local);Initial Catalog=school;User ID=sa";  
  5. SqlConnection connection = new SqlConnection(connstring);  
  6. connection.Open();  
  7. string sqlstring = "select * from student";  
  8. SqlCommand mycom = new SqlCommand(sqlstring, connection);  
  9. SqlDataAdapter adapter = new SqlDataAdapter();  
  10. adapter.SelectCommand = mycom;  
  11. //创建DataSet对象  
  12. DataSet SQLds = new DataSet();  
  13. adapter.Fill(SQLds);//通过SqlDataAdapter对象填充DataSet对象  
  14. //释放数据库连接资源。要养成了好的编程习惯,操作完数据后记住打扫垃圾!  
  15. connection.Dispose();  
  16. connection.Close();  
  17. connection = null;  
  18. }  

【编辑推荐】

  1. 简单解决Linq多条件组合问题
  2. 将数据源进行Linq排序
  3. Ordering方法实现Linq排序
  4. 轻轻松松学习Linq排序
  5. 详解Linq联合查询表结果集的返回

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...