0

我在 Sqlserver Datavbase 表中使用三个字段,以防止用户永久删除记录:

IsDelete (bit)
DeletedDate (DateTime)
DeletedUserID (bigint)

我希望通过 UI 设置第三个字段(DeletedUserID),如下所示:

        this.ExamdbDataSet.AcceptChanges();
        DataRowView row = (DataRowView)this.BindingSource.Current;
        row.BeginEdit();
        row["DeletedUserID"] = User.User.Current.ID;
        row.EndEdit();
        this.ExamdbDataSet.AcceptChanges();
        row.Delete();

其他两个字段“IsDeleted”字段和“DeletedDate”在表的“删除触发器后”中自动设置。

然后使用以下代码成功地使用希望命令提交对数据库的更改:

        this.TableAdapterManager.UpdateAll(this.ExamdbDataSet);

但问题是,“DeletedUserID”在数据库中为空。

问题是:如何在 UI 中以真实方式设置“DeletedUserID”字段值?

4

1 回答 1

0

我认为这不是一个好方法。您已经将一个简单的逻辑分割成不同的部分,每个部分都在应用程序的不同部分(UI、触发器等)中完成。您设置某个字段的值,然后删除整个记录!不要指望其他任何事情,目前的情况。您最好在 UI 中设置所有字段(即在这种情况下没有触发器),并更改加载数据的查询。例如,

Select * from table1 where IsDeleted=0

您没有告诉我们您使用的是 ASP.Net 还是 WinForms。给我们更多信息。

于 2013-12-30T07:57:07.423 回答