C# 数据表行删除中出错

C# 数据表行删除中出错,c#,asp.net,visual-studio-2008,C#,Asp.net,Visual Studio 2008,我有一个数据表,比如说DT有11行,我尝试使用 string DeptID ="3"; string s = "id='" + DeptID + "'"; rows = DT.Select(s); foreach (DataRow r in rows) r.Delete(); 我有5行id=3,但删除后datatable中的行数没有改变,每个字段中都出现了一些红色符号删除行的列。有人知道为什么会发生这种情况吗 每当我尝试使用 for(int i=0;i<dt1.Rows.Cou

我有一个数据表,比如说DT有11行,我尝试使用

string DeptID ="3";
string s = "id='" + DeptID + "'";
rows = DT.Select(s);
foreach (DataRow r in rows)
r.Delete();
我有5行id=3,但删除后datatable中的行数没有改变,每个字段中都出现了一些红色符号删除行的列。有人知道为什么会发生这种情况吗

每当我尝试使用

     for(int i=0;i<dt1.Rows.Count;i++)
      {
      if (dt1.Rows[i][0].ToString() == "")
        {
        }
      }

它显示错误“已删除的行无法执行”

您将该行标记为删除,这就是为什么会出现红色符号。行。删除仅将行状态更改为已删除。当您通过AcceptChanges方法接受然后更改时,将发生实际删除

有关更多信息,请访问以下msdn链接: http://msdn.microsoft.com/en-us/library/system.data.datarow.delete.aspx

删除行后,请对datatable进行更改,以便与新数据同步

dt.AcceptChanges();
//And u can also add a condition,while fetching the data,
foreach (DataRow dr in rows)
{  if(dr.RowState!=DataRowState.Deleted ||dr.RowState!=DataRowState.Detached)
{
}
}