1
我希望返回不使用adapter.fill技術的Datatable。如何從數據庫表中返回數據表,但不使用adapter.fill
internal DataTable ConnectedSelect(string TableName, string[] Cols, string Condition)
{
DataTable dt = new DataTable();
using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString))
{
con.Open();
using (SqlCommand cmd = new SqlCommand(GenerateSelectStatment(TableName, Cols, Condition),con))
{
SqlDataReader rdr = cmd.ExecuteReader();
object[] temp = new object[rdr.FieldCount];
while (rdr.Read())
{
rdr.GetValues(temp);
dt.Rows.Add(temp);
}
}
}
return dt;
}
}
問題是我得到輸入數組比這個表中的列數要長。 表有4列 有什麼問題? rows.add應該添加一個包含4個與輸入相同的元素的行。
甜效果很好:) 但怎會有沒有在你的代碼的循環? – AngelicCore 2013-02-17 09:06:26
dt.Load(rdr)在DataTable中插入閱讀器的所有值。在這種情況下,循環不是必需的。 – 2013-02-17 09:10:30
但是讀者不一次只返回一行嗎? 或dt.load強制它返回所有行? – AngelicCore 2013-02-17 09:28:54