代码改变世界

[C#]DataTable和DataSet有什么区别

  jiangys  阅读(5367)  评论(0编辑  收藏  举报

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"]  

 

从。NET 2.0开始,你可以用一行代码解决转换问题:

    DataReader To DataTable

    Dim dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection)

    Dim dt As DataTable = New DataTable()

    dt.Load(dr)

    DataTable To DataReader

    Dim dt Ad DataTable = ……

    Dim dr As DataTableReader = dt.CreateDataReader()

    注意:1. 使用Load方法时,如果DataTable中已经存有数据,新旧数据将合并。(新数据是指从DataReader中读取的)

    2. DataTableReader 实现了 IDataReader,尽量使用接口。

    3. DataSet 也有类似 Load 和 CreateDataReader 方法。(有示例源码)

    请参阅MSDN文档 http://msdn2.microsoft.com/en-us/library/5fd1ahe2.aspx和 http://msdn2.microsoft.com/en-us/library/system.data.dataset.createdatareader.aspx

编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端
点击右上角即可分享
微信分享提示