从DataView C#中删除DataRowView而不是将更改提交到DB

时间:2018-05-30 17:02:40

标签: c# sql-server datatable dataview datarowview

我在迭代DataView。如果我不想要基于预定义条件的行,我将其删除。在遍历整个DataView之后,我想将此更新的DataView绑定回控件,但不将更改提交到SQL Server数据库表。这会自动触发实际sql server表中的删除吗?如果是这样,我怎么能阻止这种情况发生。

 foreach (DataRowView dR in dvUpdatedRankings)
 {
     // If some logic is true, delete row
     if(DeleteFlag == True)
     {
         dR.Delete();
     }

 }

2 个答案:

答案 0 :(得分:2)

数据视图与sql server db无关。它只是作为持有者来保存从db获取的值,对它进行的任何修改只会驻留在服务器内存中,直到对象的范围丢失。因此db不会被更改。

这就像单向通信..你从db到DataView获得了数据。并且连接已关闭,现在db和Dataview是两个单独的东西!

答案 1 :(得分:0)

从数据集中删除行后,调用数据集.Acceptchanges()。 这将从数据集中删除标记为“ to_be_deleted”的行。