DataSet表示一个数据集,是数据在内存中的缓存,可以包含多个表。
DataSet连接数据库是非面向连接的,将数据读取到SQL缓冲池中后,断开连接。
DataReader连接数据库是面向连接的,读取数据时只能向前读取,读取结束,用户决定是否断开连接。
DataSet是数据的载体,保存数据结构。DataReader不承担保存数据的责任,它只负责从数据源读取数据。DataAdapter使用DataReader从数据库读取数据并Add到DataSet中保存起来。实际上都需要通过DataReader读取数据,只是DataAdapter把这些封装了。
区别:
DataSet可以离线处理,前后滚动;DataReader不可以离线处理,且是只读向前的,但速度高于DataSet。
DataSet可以存储数据库各种对象,触发器等;DataReader只能存储游标记录。
DataSet可以更新回原来的数据;DataReader不能。
DataSet可以forword previus;DataReader只能forword。
参考文章:http://www.cnblogs.com/jiahaohk/articles/1546864.html