簡體   English   中英

如何將數據添加到C#數據表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM