當我從數據閱讀器向數據表加載數據時,它會跳過第一行。 例如,如果我在數據閱讀器中有12行,那麼只有11行即將到來。將數據從數據閱讀器加載到數據表時出現問題
dataReader dr=new DataReader();
DataTable dt=new DataTable();
if(dr.read)
dt.load(dr);
請幫助 Thanx提前!
當我從數據閱讀器向數據表加載數據時,它會跳過第一行。 例如,如果我在數據閱讀器中有12行,那麼只有11行即將到來。將數據從數據閱讀器加載到數據表時出現問題
dataReader dr=new DataReader();
DataTable dt=new DataTable();
if(dr.read)
dt.load(dr);
請幫助 Thanx提前!
DataReader.Read
使讀者進入下一行。
您不需要此檢查,否則請改爲使用HasRows
。
dt.load(dr);
注意,你也可以使用一個DataAdapter
加載DataTable
:
DataTable dt = new DataTable();
using(var con = new SqlConnection("ConnectionString"))
using(var da = new SqlDataAdapter("SELECT * FROM T", con))
{
da.Fill(dt);
}
望着文檔,Load方法傳遞一個DataReader沒有一張支票:
if (dr.Read())
所以我會說,如果你刪除了這一行,那麼你將得到你所有的結果。 Read()
將推動讀者一個記錄。
它的工作原理 Thanku這麼多添添 – James
,它的工作原理,但我覺得比如果醫生沒有數據,它會給出錯誤 – James
@Ankit:沒有,如果沒有行,你得到一個空'DataTable'與所有列(測試)。從[MSDN](http://msdn.microsoft.com/zh-cn/library/4e06d41f(v = vs.110).aspx):_「架構操作發生在所有導入的結果集上,即使那些不包含數據。」_ –