逃避数据库表中已删除的数据集行

时间:2012-11-03 12:05:17

标签: c# .net winforms c#-4.0 dataset

我不知道该怎么保持标题(仍然困惑,抱歉)。在我的项目中,我试图通过DataSet更新数据库表。好吧,我实现了这个,但是当我删除DataSet中的任何行并尝试更新数据库表时,VS显示错误 - > “无法通过行访问已删除的行信息”。然后我在互联网上搜索了我在answer中得到了解决方案。现在我的代码没有显示任何错误,但令我感到惊讶的是,数据库正在使用DataSet现有和已删除的新值进行更新。我不想将已删除的Dataset行添加到数据库表中。怎么解决这个问题?

在我的代码中我使用DataRowVersion.Original,我应该更改它吗?我还尝试了DataRowVersion的其他值,但没有结果。

1 个答案:

答案 0 :(得分:1)

//是的,在将值插入数据库之前,您必须进行一些检查

        foreach (DataRow row in ds.Tables["Table_Name"].Rows)
        {
            if (row.RowState != DataRowState.Deleted)
            {
                if (row.RowState == DataRowState.Added)
                { 
                    // Perform insertion in to database
                }
                if (row.RowState == DataRowState.Modified)
                { 
                    // perform updation in to databse
                }
            }
        }