2011-08-18 50 views
0

我有有如何在不使用循環的情況下刪除DataTable的行?

數據表數據表一個:

  SeqNo  ItemID  ItemName 
     -------  ------  -------- 
      1   10   AAA 
      2   20   BBB 
      3   30   CCC 

現在我想刪除其擁有的SeqNo「3」的行。

現在我做這樣的GridView的RowCommand事件:

if (e.CommandName == "Delete") 
     { 
      string SeqNo = e.CommandArgument.ToString(); 
      for (int i = 0; i < DTItem.Rows.Count; i++) 
      { 
       if (SeqNo == DTItem.Rows[i]["SeqNo"].ToString()) 
       { 
        DTItem.Rows.Remove(DTItem.Rows[i]); 
       } 
      } 
     } 

但是,如果沒有循環,如何刪除基於這個條件的行?

+0

爲什麼沒有循環?很明顯循環會在某些時候被使用 - 即使它在你調用的庫代碼中。在某些情況下,您不能在沒有某種循環的集合上執行操作。 –

回答

2

嘗試

DataRow[] rows = DTItem.Select(" SeqNo = " + SeqNo); 
rows[0].Delete(); 
0

如果你確信只有一個,絕對一次出現行的,你可以做到這一點如下

dt1.Rows.Remove(dt1.Select("SeqNo= 3")[0]); 
0

試試這個:

DataRow[] rows = DTItem.Select("SeqNo = " + SeqNo); 
foreach (DataRow row in rows) { 
    DTItem.Rows.Remove(row); 
} 
0

另一種選擇是使用DataView實例。

//Set sort key and order 
DTItem.DefaultView.Sort = "SeqNo"; 
DTItem.DefaultView.Delete(DTItem.DefaultView.Find(2)); 
相關問題