我在迭代DataView。如果我不想要基于预定义条件的行,我将其删除。在遍历整个DataView之后,我想将此更新的DataView绑定回控件,但不将更改提交到SQL Server数据库表。这会自动触发实际sql server表中的删除吗?如果是这样,我怎么能阻止这种情况发生。
foreach (DataRowView dR in dvUpdatedRankings)
{
// If some logic is true, delete row
if(DeleteFlag == True)
{
dR.Delete();
}
}
答案 0 :(得分:2)
数据视图与sql server db无关。它只是作为持有者来保存从db获取的值,对它进行的任何修改只会驻留在服务器内存中,直到对象的范围丢失。因此db不会被更改。
这就像单向通信..你从db到DataView获得了数据。并且连接已关闭,现在db和Dataview是两个单独的东西!
答案 1 :(得分:0)
从数据集中删除行后,调用数据集.Acceptchanges()。 这将从数据集中删除标记为“ to_be_deleted”的行。