簡體   English   中英

DataTable行刪除錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM