ADO.NET下数据访问的策略有两种方式,一种是基于集的访问方式(Dataset),另一种为基于流的访问方式(DataReader)
先说说Dataset的访问方式吧
Dataset是将数据记录于数据集当中,常用于执行以下几种功能:
1.对数据执行大量的处理,而不需要与数据源保持打开的连接,从而可以连接释放给其他客户端
2.与数据进行动态交换,例如绑定Windows窗体并关联来自多个数据源
3.每条记录都需要执行大量处理。对使用Data返回的每一行惊醒扩展处理会延长必要的时间,这样影响了其性能。
4.重用同样的记录集合,以便通过缓存获得性能改善。
5.使用XML操作对数据进行操作。
那什么时候使用DataReader访问呢?
1.不需要缓存数据。
2.要处理的结果集太大,内存中放不下。
3.需要仅向前,只读方式快速访问数据。
这种方式节省了Dataset所使用的内存,并省去了创建DataSet并填充内容所需要的必须处理,因此提高了程序的性能。
区别:DataReader提供了一个来自数据库快速,只进,只读数据流,在执行过程中不能脱离数据库的连接,或者说读取数据的时候不能关闭连接,在使用DataSet获取数据的时候可以断开数据连接,因为此时数据已经在服务器当中了。