数据集并不直接和数据库打交道,它和数据库之间的相互作用是通过.NET数据提供程序中的数据适配器(DataAdapter)对象来完成的。那么数据集是如何工作的呢?
一、应用程序向服务器端发出请求,要求获取数据。
二、服务器响应的数据发送到数据集,通过.NET数据集提供程序完成。
三、数据集将数据发送客户端。
四、客户端修改后存储到数据集中。
五、数据集统一将修改后的数据保存到服务器中。
ADO.NET数据集DataSet的工作原理如图所示:
首先,客户端与数据库服务器端建立连接。
然后,由客户端应用程序向数据库服务器发送数据请求。数据库服务器接到数据请求后,经检索选择出符合条件的数据,发送给客户端的数据集,这时连接可以断开。
接下来,数据集以数据绑定控件或直接引用等形式将数据传递给客户端应用程序。如果客户端应用程序在运行过程中有数据发生变化,它会修改数据集里的数据。
当应用程序运行到某一阶段时,比如应用程序需要保存数据,就可以再次建立客户端到数据库服务器端的连接,将数据集里的被修改数据提交给服务器,最后再次断开连接。
把这种不需要实时连接数据库的工作过程叫做面向非连接的数据访问。在DataSet对象中处理数据时,客户端应用程序仅仅是在本地机器上的内存中使用数据的副本。这缓解了数据库服务器和网络的压力,因为只有在首次获取数据和编辑完数据并将其回传到数据库时,才能连接到数据库服务器。
虽然这种面向非连接的数据结构有优点,但还是存在问题。当处于断开环境时,客户端应用程序并不知道其他客户端应用程序对数据库中原数据所做的改动。很有可能得到的是过时的信息。
【编辑推荐】