zoukankan      html  css  js  c++  java
  • C#中DataSet、DataTable、DataReader的区别

    简单说就是:   
      DataSet:数据集。一般包含多个DataTable,用的时候,dataset["表名"]得到DataTable   
        
      DataTable:数据表。   
      一:   
      SqlDataAdapter   da=new   SqlDataAdapter(cmd);   
      DataTable   dt=new   DataTable();   
      da.Fill(dt);   
        
      -----------------   
      直接把数据结果放到datatable中,   
      二:   
      SqlDataAdapter   da=new   SqlDataAdapter(cmd);   
      DataSet   dt=new   DataSet();   
      da.Fill(dt);   
      ----------------   
      数据结果放到dataset中,若要用那个datatable,可以这样:dataset[0]   
      更常见的用法:   
      SqlDataAdapter   da=new   SqlDataAdapter(cmd);   
      DataSet   dt=new   DataSet();   
      da.Fill(dt,"table1");   
      用的时候:这样取datatable:       
      dataset["table1"]   
       


    DataSet不能直接用来存储数据,如果仅用DataSet,它会自动的生成一个DataTable,所以看上去就像一个DataTable。   
        
      如果有很多个DataTable需要同时绑定到某个控件,就可以把多个DataTable添加到一个DataSet中,分别起不同的名字就可以了Top
    DataReader基于连接,它返回的数据是只读只向前的,适合简单地浏览且耗时比较短的操作。DataSet对象会将所需数据读入内存然后断开连接。它适合对数据进行复杂长时间的操作,并且需要更新数据的情况。Top

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

    DataSet就像内存数据库,   
      DataTable就是表,   
      库可以包含多个表,也可以包含表之间的关系。

  • 相关阅读:
    IT asset register
    微前端
    强缓存和弱缓存(协商缓存)
    比较运算规则 == 、 ===、Object.is 和 ToPrimitive 方法 [[DefaultValue]] (hint)
    事件冒泡、事件捕获、事件委托
    mysql服务没有响应控制功能
    React 项目中有哪些细节可以优化?实际开发中都做过哪些性能优化
    算法的时间复杂度与空间复杂度
    算法:42.接雨水
    解决每次git pull、git push都需要输入账号和密码的问题
  • 原文地址:https://www.cnblogs.com/wxfsoft/p/3410842.html
Copyright © 2011-2022 走看看