DataTable和DataSet有什么区别

时间:2021-11-26 08:46:02

DataTable和DataSet有什么区别

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