[英]Error in DataTable row deletion
我有一個數據表說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.aspx http://msdn.microsoft.com/en-us/library/system.data.datarow .delete.aspx http://msdn.microsoft.com/en-us/library/system.data.datarow.acceptchanges.aspx
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.