【发布时间】:2016-08-20 08:12:38
【问题描述】:
我的 tableadapter 的删除命令实际上是一个存储过程,它使用该行被“删除”的日期时间以及在另一列中执行删除的用户来更新该行,因为我不想实际删除该行但只需将其标记为不包含在未来的选择中。我正在使用我的数据表的 RowDeleting 事件,如下所示,我没有收到任何错误,该行正在从绑定到我的数据表的 datagridview 中删除,尽管我在数据库表中的两列没有成功更新。我哪里错了?
private void PROCFixedIncomeTradesSelect_RowDeleting(object sender, DataRowChangeEventArgs e)
{
AAMOpsDBDataSet.PROCFixedIncomeTradesSelectRow row = (AAMOpsDBDataSet.PROCFixedIncomeTradesSelectRow)e.Row;
row.Deleted = DateTime.Now;
row.DeletedBy = Environment.UserName;
}
我用来将更改推送到 db 的代码如下:
private void pROCFixedIncomeTradesSelectBindingNavigatorSaveItem_Click(object sender, EventArgs e)
{
SaveData();
}
private void SaveData()
{
this.Validate();
pROCFixedIncomeTradesSelectBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(aAMOpsDBDataSet);
}
编辑,第 2 天,我仍然希望找到这个问题的答案,关于我可以测试以尝试诊断问题的任何建议?我确实对我的更新命令进行了测试,在datagridview的一行中更改了一个值,然后单击了我的保存按钮,数据库中的值成功更新了。
【问题讨论】:
-
您是否曾经在您的表适配器上调用
Update()? -
是的,我已经用该代码更新了我的帖子
-
在 tableadapter 上使用
Update()尝试,而不是通过 tableAdapterManager。 -
不,不幸的是,这仍然不起作用。注释掉 tableadaptermanager 行并添加
pROCFixedIncomeTradesSelectTableAdapter.Update(aAMOpsDBDataSet);,行为是一样的 -
你有没有试过全程跟踪dataRow的RowState?在删除之前,在事件之后,在 tableadapter 更新之前。
标签: c# sql-server datatable ado.net dataset