使用DataSet是为了实现应用程序的下述功能:
1 操作结果中的多个分离的表。 2 操作来自多个源(例如来自多个数据库、XML文件和电子表格的混合数据)的数据。 3 在层之间交换数据或使用XML Web服务。与DataReader 不同,DataSet能被传递到远程客户端。 4 通过缓冲重复使用相同的行集合以提高性能(例如排序、搜索或过滤数据)。 5 每行执行大量的处理。在使用DataReader返回的行上进行扩展处理将使连接存在的时间比必要的更长,从而降低效率。 6使用XML操作(例如XSLT转换和Xpath查询)维护数据。
在应用程序需要以下功能时使用DataReader:
1 不需要缓冲数据。 2 正在处理的结果集太大而不能全部放入内存中。 3 需要迅速一次性访问数据,采用只向前的只读的方式
DateSet是通过适配器DataAdapter把数据从数据库中拿出来,放在内存中的一张表,通过操作他来操作数据库,可以实现所有操作。而DataReader是只读的,不可逆的,如果只是要显示数据,那就用他,节省系统资源。
如果一次性读取的数据量较大建议使用DataSet,DataSet读取之后占的是内存空间,但是现在一般的电脑都有1G以上的内存,所以这点内存算不了什么。完全可以忽略。如果使用DataReader可能会导致网站读取数据的时候 出现假死现象。(千条以上)
如果是少量数据 建议使用DataReader,读取速度较快。让用户体验的舒服些。
1.DataReader用于读取只进、只读的数据 其对象的Read()方法是每次只读取一行数据的 所以这个特点适合ListView控件 2.如果你用的是DataGridView控件 那就用DataSet 速度快而且代码量也少
datareader是在线操作数据库,且每次只能加载一条数据.所以占用内存是很小的. dataset是离线操作数据库,是将数据全部加载在内容中,所以比较消耗内存。
DataReader 从数据库中检索只读、游标向前的数据流,Dataset可写并且数据可以指定到任意记录行