将已删除的行保存在数据表中,以便稍后在数据库中删除
Posted
技术标签:
【中文标题】将已删除的行保存在数据表中,以便稍后在数据库中删除【英文标题】:Saving a deleted row in a datatable to be deleted later in a database 【发布时间】:2010-11-19 04:06:12 【问题描述】:抱歉,如果标题有点含糊不清,但我现在正在想一个好方法来做这件事。顺便说一下,我们使用的是 .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 或向其中添加另一列。这可能吗?
【问题讨论】:
【参考方案1】:可以通过写来获取被删除行的数据
row["ColumnName", DataRowVersion.Original]
【讨论】:
谢谢,正是我需要的:)【参考方案2】:为什么不为此使用 DataAdapter?你可以在http://msdn.microsoft.com/en-us/library/xzb1zw3x%28v=VS.90%29.aspx了解如何做到这一点
谢谢, 瓦米普
【讨论】:
以上是关于将已删除的行保存在数据表中,以便稍后在数据库中删除的主要内容,如果未能解决你的问题,请参考以下文章
如何将文档文件保存到 iOS 中的 SQLite 数据库,以便稍后在程序中查看它们?