删除数据表行时出错



我有一个数据表,说DT有11行,我试图使用删除id=3的行

string DeptID ="3";
string s = "id='" + DeptID + "'";
rows = DT.Select(s);
foreach (DataRow r in rows)
r.Delete();

我有 5 行 id=3,但删除后数据表中的行数没有改变,并且已删除行的每个字段(列)中都出现了一些红色符号。谁能知道为什么会这样?

每当我尝试使用

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

它显示错误"删除的行无法获取"

删除行后,请给数据表Acceptchanges(),这样,它就会与新数据同步。

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)
{
}
}

您标记了要删除的行,这就是显示红色符号的原因。 row.Delete()只会将行状态更改为"已删除"。当您接受更改(通过AcceptChanges方法)时,将发生实际删除。

有关详细信息,以下是一些 msdn 链接:http://msdn.microsoft.com/en-us/library/03c7a3zb.aspxhttp://msdn.microsoft.com/en-us/library/system.data.datarow.delete.aspxhttp://msdn.microsoft.com/en-us/library/system.data.datarow.acceptchanges.aspx

相关内容

  • 没有找到相关文章

最新更新