You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中从DataView删除DataRowView且不提交更改至数据库的方法

关于DataView删除行是否触发数据库更新的问题解答

放心,你现在的操作绝对不会自动触发SQL Server数据库里的删除!原因很简单:

  • DataView和DataRowView都是内存中的对象,它们对应的是本地DataTable里的数据,和数据库本身没有实时绑定。你调用dR.Delete()只是在内存里给对应的DataRow打上了删除标记,并没有直接和数据库通信。
  • 只有当你主动调用DataAdapter.Update()(或者TableAdapter的更新方法)这类专门提交更改的代码时,内存里的修改才会同步到数据库里。你现在只是删除内存里的行,然后重新绑定控件,完全没碰提交数据库的步骤,所以数据库里的数据一点都不会变。

甚至你都不需要额外做什么阻止操作——因为根本就不会触发数据库更改。不过可以给你提个小提醒:如果你的dvUpdatedRankings关联的DataTable后续会被用来调用Update方法,记得要么提前过滤掉这些标记为删除的行,要么在Update前确认只提交你需要的更改。

你的代码示例:

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

内容的提问来源于stack exchange,提问作者Roni R

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:15:58