我以为这会很容易,但是我在这里...我试图只是向现有行添加新行,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
你必须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
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句