我有一个数据表,说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