DataTable、DataView、DataReader和DataSet,DataGrid等的区别

 ArrayList是可变数组,只能通过索引来查找数据。通过Add()方法添加数据..    
Hashtable是哈希表..存的是键值对...一个键对应一个值.优点就是可以通过关键字来找到对应的数据.  
如:Hashtable   ht   =   new   Hashtable();  
ht["a"]   =   "张三";  
ht["b"]   =   "李四";  
要获得张三就可以通过   ht["a"]来得到,   而ArrayList就没有这么好用.  
DataView   的好处就是能够给一个DataTable定义多个视图,   当有两个DataGrid需要显示同一个DataTable中的数据的时候,可以定义两个DataView来绑定到控件上。  

 

DataReader用于一行一行的读取数据。  
DataSet是数据集...里面放的是多个数据表.用来保存查询到的数据.  它相对于DataReader可以创建本地副本,还可以进行很多操作,比如筛选,排序等,若对数据不进行操作最好选择DataReader.DataSet是个类.


DataGrid是显示数据的控件.  
datatable、一个数据的表

把dataset看作数据库,
把datatable看作数据库里的一个表
把datagridview看作显示表里数据的表格工具

 

DataReader基于连接,它返回的数据是只读只向前的,适合简单地浏览且耗时比较短的操作。DataSet对象会将所需数据读入内存然后断开连接。它适合对数据进行复杂长时间的操作,并且需要更新数据的情况。

 

SqlDataReader只是建立与数据库之间的类似于一个指针关系,在没有调用Read()方法之间它不从数据读出任何数据,而在调用Read()时也只是从数据库中读出一条数据.DATATABLE是数据表的一个复本,至于DataSet可以反它看作一个数据库,因为它不但可以包括多个表而且还能包括各表之间的关系.所以在进行大量数据访问时(特别是分页方式的访问)建议使用SqlDataReader,这样可以节省大量的内存开销.

你可能感兴趣的:(DataTable、DataView、DataReader和DataSet,DataGrid等的区别)