[英]How to add data to a C# DataTable
我以為這會相當容易,但是我在這里...我試圖將一個新行簡單地添加到現有的DataTable
但是該表不會占用我的行...
Debug.Print("My Achv Count Before: {0}", Manager.achievementsMine.Rows.Count);
DataRow newRow = Manager.achievementsMine.NewRow();
newRow.SetField<int>("CT_Q", count);
newRow.SetField<DateTime>("CMPL_D", DateTime.Now);
newRow.SetField<string>("USER_LAN_I", Manager.userID);
newRow.SetField<string>("ACHV_I", ACHV_I);
Manager.achievementsMine.ImportRow(newRow);
Manager.achievementsMine.AcceptChanges();
Debug.Print("My Achv Count After: {0}", Manager.achievementsMine.Rows.Count);
“ Debug.Print”之前/之后的兩行都顯示為44。為什么“ after”調試不會告訴我45,因為我剛剛導入了新行並告訴DataTable
接受更改?
編輯:我試圖重寫一些newRow
部分,但沒有更改:
Debug.Print("My Achv Count Before: {0}", Manager.achievementsMine.Rows.Count);
DataRow newRow = Manager.achievementsMine.NewRow();
newRow["CT_Q"] = count;
newRow["CMPL_D"] = DateTime.Now;
newRow["USER_LAN_I"] = Manager.userID;
newRow["ACHV_I"] = ACHV_I;
Manager.achievementsMine.ImportRow(newRow);
Manager.achievementsMine.AcceptChanges();
Debug.Print("My Achv Count After: {0}", Manager.achievementsMine.Rows.Count);
如果要使用NewRow
,則必須稍后將DataRow
Add
到表中:
DataRow newRow = Manager.achievementsMine.NewRow();
newRow.SetField<int>("CT_Q", count);
newRow.SetField<DateTime>("CMPL_D", DateTime.Now);
newRow.SetField<string>("USER_LAN_I", Manager.userID);
newRow.SetField<string>("ACHV_I", ACHV_I);
Manager.achievementsMine.Rows.Add(newRow);
另一種方法是使用DataRowColection.Add
:
DataRow newRow = Manager.achievementsMine.Rows.Add();
// you don't need to add this row since it's already added.
注意 :如果要稍后將新行插入數據庫, 請不要調用AcceptChanges
。 AcceptChanges
會將其RowState
更改為不變,因此DataAdapter
無法檢測到該行是新的。 DataAdapter
本身將在Update
結束時調用它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.