DataSet包含了多个DataTable,以及DataTable之间的约束关系。
如果你的数据不需要做关系映射,直接用DataTable效率比较高。如果有需要1:N或N:M这样的关系查询,将DataSet中的相应DataTable全部填充,再使用关系查询数据。
论常用自然是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"]
从。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
方法。
DataSet数据源你可以把它看成数据库,而DataTable就是数据库里的一个表
到msdn上看看就知道了。MSDN上讲的很系统