代码示例:
string sqlcoon = "Server=.;DataBase=abc;uid=sa;pwd=123456";
SqlConnection coon = new SqlConnection(sqlcoon);
string sql = "select * from SmarterCloud_Unit";
SqlCommand cmd = new SqlCommand(sql,coon);
coon.Open();
//SqlDataReader
//SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
//DataTable table = new DataTable();
//table.Load(reader);
//MessageBox.Show(table.Rows.Count.ToString());
//this.dataGridView1.DataSource = table;
//SqlDataAdapter
SqlDataAdapter adptr = new SqlDataAdapter(sql, coon);
DataSet ds = new DataSet();
adptr.Fill(ds, "SmarterCloud_Unit");
this.dataGridView1.DataSource = ds.Tables[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