ADO.net 为数据访问提供了两种方式
1.非连接模式(靠数据集)
2.连接模式(直接对数据库进行操作)
连接模式
可通过command(命令)对象执行SQL语句或存储过程。如果执行的结果返回的是一个记录集,则可以使用DataReader(数据读取器)对象读取数据。这里需要注意,DataReader ADO.NET的连接模式只能返回向前的、只读的数据,这是因为DataReader对象的特性决定的。
非连接模式
在数据集方式中,操作数据的基本过程是首先使用数据适配器将数据加载到内存中(数据集对象),在数据集对象中操作数据,然后再使用数据适配器将更改会写到数据库中。
就现在的经验来说,非连接模式大大减少了对连接的占用频率。
那么,两者最大的区别在哪里了呢?
通过对两者的使用后,我们知道,使用连接模式,访问数据库对数据操作,需要保持与服务端的连接,那么,每创建一个连接,都会对服务器增加一个负担(这个负担可能是对连接通路的占用或者是处理数据的负担),直到这个连接结束负担才会消失,如果这种连接一定时间内创建过多,势必要累垮服务器。而非连接方式,访问数据,先连接数据库,把要处理的数据拷贝到本机内存,然后就可以断开连接,对数据库服务器的负担极小,这样就把对数据处理的负担转移给了本机处理器,减轻了服务器的负担,可以使服务器发挥更高的使用率。这个对比是从对服务器负担的角度上来说的。
在查阅资料的时候,有网友说,连接模式相对于非连接模式来说,有需要保持网络连接的缺陷,我倒觉着这点有些无病呻吟的嫌疑。以后的世界是一个依赖网络的时代,谁家的网络还会允许时断时续呐。
两者的访问方式不一样,是因为他们都有各自适用的范围
1.连接
数据量小,系统规模不大、客户机和服务器在同一网络内的环境,只读的情况下优先选DataReader
2.非连接
适合网络数据量大、系统节点多、网络结构复杂,尤其是通过Internet/Intranet进行连接的网络。需要绑定数据源的情况下,需要修改数据同时更新到数据库(非连接)