gpt4 book ai didi

c# - 如何将数据添加到 C# DataTable

转载 作者:太空宇宙 更新时间:2023-11-03 19:12:17 25 4
gpt4 key购买 nike

我认为这会相当容易,但我现在...我试图简单地向现有 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。为什么“之后”调试不告诉我 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,你必须稍后Add DataRow到表中:

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 结束时调用它。

关于c# - 如何将数据添加到 C# DataTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19793288/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com