ArrayList、Hashtable、DataTable、DataView、DataReader和DataSet,DataGrid等的区别和各自的优缺点
2015-06-15 10:11
375 查看
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,这样可以节省大量的内存开销.
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,这样可以节省大量的内存开销.
相关文章推荐
- [C/C++]_[初级]_[malloc-calloc-new的区别]
- 《开源框架那点事儿13》:开源与中小型软件公司的未来趋势
- 合并两个list集合并且排序
- 10、树
- Ajax详解及其案例分析
- Perl删除前导和拖尾空白(删除左右空格、空白字符)
- C实现 LeetCode->3SumClosest
- 在IIS网站搭建过程中经常出现一些问题,对这些问题进行总结,供以后参考
- 实现一个弹窗
- [突发奇想] 验证码 识别人与自动化操作是否可采用 鼠标 停留位置 与 时间 来自动验证 是否是人呢?
- JQuery
- 线程同步总结
- nodejs 中压缩/解压方案
- 解决整合 UCenter 首次注册同步登录与自动激活
- Multiple markers at this line @Override的解决方法
- 关于android渐变色的配置使用
- JFlow&CCFlow流程引擎的业务数据与流程数据同步的操作步骤.
- static 方法
- objective c 类目 延展 协议
- SCORM内容聚合模型 (CAM)V1.3.1