如何删除数据表中的所有行

mee*_*eep 3 c# sql-server datatable rowstate

我想从数据表中删除所有行状态属性值已删除的行。

DataTable dt;
dt.Clear(); // this will not set rowstate property to delete.
Run Code Online (Sandbox Code Playgroud)

目前我正在遍历所有行并删除每一行。

有什么有效的方法吗?我不想在 SQL Server 中删除我想使用 DataTable 方法。


TcK*_*cKs 5

我们是这样使用的:

for(int i = table.Rows.Count - 1; i >= 0; i--) {
    DataRow row = table.Rows[i];
    if ( row.RowState == DataRowState.Deleted ) { table.Rows.RemoveAt(i); }
}
Run Code Online (Sandbox Code Playgroud)

  • @meetjaydeep:如果您执行 foreach,则无法更改集合。但是 RemeoveAt() 改变了集合,所以 foreach 会抛出异常。所以这不是解决方案。 (3认同)
  • 我认为这是唯一更好的方法 foreach (DataRow row in dt.Rows) { row.Delete(); } (2认同)