我在 Sqlserver Datavbase 表中使用了三个字段,以防止用户永久删除记录:
IsDelete (bit)
DeletedDate (DateTime)
DeletedUserID (bigint)
我希望通过UI设置第三个字段(已删除的用户ID),如下所示:
this.ExamdbDataSet.AcceptChanges();
DataRowView row = (DataRowView)this.BindingSource.Current;
row.BeginEdit();
row["DeletedUserID"] = User.User.Current.ID;
row.EndEdit();
this.ExamdbDataSet.AcceptChanges();
row.Delete();
和其他两个字段,"IsDelete"字段和"删除日期"在表的"删除后触发器"中自动设置。
然后使用以下代码使用 desire 命令成功将更改提交到数据库:
this.TableAdapterManager.UpdateAll(this.ExamdbDataSet);
但问题是,"已删除的用户ID"在数据库中为空。
问题是:如何在UI中以true的方式设置"已删除的用户ID"字段值?
一个好方法。您已将一个简单的逻辑切片为单独的部分,每个部分都在应用程序的不同部分(UI、触发器等)中完成。您设置某个字段的值,然后删除整个记录!不要指望目前的情况。您最好在 UI 中设置所有字段(即在这种情况下没有触发器),并更改加载数据的查询。例如
Select * from table1 where IsDeleted=0
您没有告诉我们您的使用是 ASP.Net 还是WinForms。给我们更多信息。