将已删除的行保存在稍后要在数据库中删除的数据表中

时间:2010-11-19 04:06:12

标签: c# datatable

很抱歉,如果标题有点模糊,但我正在努力想出一个很好的方法来做到这一点。顺便说一下,我们正在使用.NET 3.5。

示例代码:

if (ExistsInDB(dt.Rows.Find(rowID)))
     dt.Rows.Find(rowID).Delete();
else
     dt.Rows.Remove(dt.Rows.Find(rowID));

如果数据库中存在该行,请将其标记为删除。否则,将其从数据表中删除。

现在,如果我继续通过DataRow.Delete()方法将DataRow的RowState属性更改为Deleted,那可以正常工作,除非我无法访问信息,我需要在用户点击时从数据库中删除该行“保存更改”。

我不想将行存储在另一个数据表中,因为我已经有很多其他数据表,我不想为对象添加更多的复杂性。我会在数据表上添加另一个名为“ToBeDeleted”的列,但这些表会通过网格显示在程序中。

基本上,我希望以后能够在DataTable中标记DataRow以便在数据库中删除,而无需将DataRow抛入List或向其中添加另一列。这可能吗?

2 个答案:

答案 0 :(得分:2)

您可以通过编写

来获取已删除行的数据
row["ColumnName", DataRowVersion.Original]

答案 1 :(得分:0)

为什么不使用DataAdapter呢?您可以在http://msdn.microsoft.com/en-us/library/xzb1zw3x%28v=VS.90%29.aspx

了解如何执行此操作

谢谢,
Vamyip