首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DataTabe_RowDeleting,数据库未更新

DataTabe_RowDeleting,数据库未更新
EN

Stack Overflow用户
提问于 2016-04-26 13:10:22
回答 1查看 63关注 0票数 0

我的tableadapter的delete命令实际上是一个存储过程,它使用行被“删除”的日期时间以及在另一列中执行删除操作的用户更新行,因为我不想实际删除该行,而只是将其标记为不包含在将来的选择中。我使用datatable的RowDeleting事件,如下所示,我没有收到任何错误,该行将从绑定到datatable的datagridview中删除,尽管数据库表中的两列未被成功更新。我哪里出问题了?

代码语言:javascript
复制
private void PROCFixedIncomeTradesSelect_RowDeleting(object sender, DataRowChangeEventArgs e)
{
    AAMOpsDBDataSet.PROCFixedIncomeTradesSelectRow row = (AAMOpsDBDataSet.PROCFixedIncomeTradesSelectRow)e.Row;
    row.Deleted = DateTime.Now;
    row.DeletedBy = Environment.UserName;
}

下面是我用来将更改推送到db的代码:

代码语言:javascript
复制
private void pROCFixedIncomeTradesSelectBindingNavigatorSaveItem_Click(object sender, EventArgs e)
{
    SaveData();
}

private void SaveData()
{
    this.Validate();
    pROCFixedIncomeTradesSelectBindingSource.EndEdit();
    this.tableAdapterManager.UpdateAll(aAMOpsDBDataSet);
}

编辑,第二天,我仍然希望找到这个问题的答案,对于我可以测试的东西有什么建议来尝试诊断问题吗?我确实对update命令进行了测试,在datagridview的一行中更改了一个值,并单击了“我的保存”按钮,该值在数据库中成功更新。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-04 16:00:44

我仍然不明白为什么我的其他代码没有按照我想要的方式工作,但是我删除了我使用的事件处理程序,现在正在对表适配器的RowUpdating事件进行更改。这段代码按照我想要的方式工作。

代码语言:javascript
复制
private void Adapter_RowUpdating(object sender, System.Data.SqlClient.SqlRowUpdatingEventArgs e)
{
    if (e.StatementType == StatementType.Delete)
    {
        pROCFixedIncomeTradesSelectTableAdapter.Adapter.DeleteCommand.Parameters["@Deleted"].Value = DateTime.Now;
        pROCFixedIncomeTradesSelectTableAdapter.Adapter.DeleteCommand.Parameters["@DeletedBy"].Value = Environment.UserName;
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36865951

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档