代码之家  ›  专栏  ›  技术社区  ›  duraz0rz

在数据表中保存已删除的行,以便以后在数据库中删除

  •  1
  • duraz0rz  · 技术社区  · 14 年前

    抱歉,如果标题有点含糊,但我现在正在想一个好办法。顺便说一下,我们正在使用.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,这就可以正常工作,除非当用户点击“保存更改”时,我无法访问从数据库中删除行所需的信息。

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

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

    2 回复  |  直到 14 年前
        1
  •  2
  •   SLaks    12 年前

    您可以通过写入

    row["ColumnName", DataRowVersion.Original]
    
        2
  •  0
  •   vamyip    14 年前

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

    谢谢,
    瓦米利普