DataTable .Load 方法 (IDataReader)用来从DataReader对象中填充DataTable所需的数据
public DataTable GetAllInventory()
{
// Prep command object.
string sql = "Select * From Inventory";
SqlCommand cmd = new SqlCommand(sql, this.sqlCn);
SqlDataReader dr = cmd.ExecuteReader(); // This will hold the records.
DataTable inv = new DataTable(); // Fill the DataTable with data from the reader and clean up.
//通过所提供的 IDataReader,用某个数据源的值填充 DataTable。 如果 DataTable 已经包含行,则从数据源传入的数据将与现有的行合并。
inv.Load(dr);
//也可以用dr循环获取数据并赋值给DataRow
dr.Close();
return inv;
}
以前没用过这个函数。
如果不这么做,就得这么操作了(未经测试,见谅)。
DataTable dt = new DataTable();
dt.Columns.Add("col1");
dt.Columns.Add("col2");
while (dr.Read())
{
DataRow row=new DataRow();
row["col1"] = dr["col1"];
row["col2"] = dr["col2"];
dt.Rows.Add(row);
}
dt.AcceptChanges();