同桌上课用手指进去了好爽_欧美丰满熟妇xxⅹⅹ性大i_成人av天天日天天拍拍_猛男gay帅男gay男男同志_欧美va天堂在线观看_人妻无码av中文系列三里桃花_亚欧免费无码在线观看_久久久精品国产亚洲av水_日韩在线免费看污污污_2021无码专区人妻系列日韩

首頁 優(yōu)化推廣 在c#中 RemoveAt、 Remove、delete用法區(qū)別

在c#中 RemoveAt、 Remove、delete用法區(qū)別

來源: | 時間:2011/3/15 13:52:00 |

刪除DataRow:有兩種方法可以刪除DataRow,分別是Delete方法和Remove方法和RemoveAt方法。

其區(qū)別是:

Delete方法實際上不是從DataTable中刪除掉一行,而是將其標志為刪除,僅僅是做個記號,

而Remove方法則是真正的從DataRow中刪除一行,

RemoveAt方法是根本行的索引來刪除。

列:DataRow dr=ds.Tables[table].Rows.Find(a);ds.Tables[table].Remove(dr);或ds.Tables[table].Remove(index);//dr 為a所在的行,查出后將其刪除,index為 a所在的索引號。

 

有兩種方法可以刪除DataTable中的DataRow:
Delete方法和Remove方法和RemoveAt方法,其區(qū)別是:
Delete方法實際上不是從DataTable中刪除掉一行,而是將其標志為刪除,僅僅是做個記號,而Remove方法則是真正的從DataRow中刪除一行,RemoveAt方法是根據行的索引來刪除。
使用方法:
DataRow dr=ds.Tables["table"].Rows.Find("a");
ds.Tables["table"].Remove(dr);

ds.Tables["table"].RemoveAt(index);

ds.Tables["table"].Row[index].Delete();
Question:
今天在實現一個循環(huán)刪除的功能的時候,用RemoveAt方法來實現,結果出現找不到第X行的錯誤提示??梢奟emoveAt執(zhí)行以后已經提交,就是如果原來表中有兩條記錄,那么執(zhí)行一次RemoveAt(0)之后就只剩下一條記錄了,再執(zhí)行RemoveAt(1)就會報錯(其實這個時候還應該執(zhí)行RemoveAt(0))。所以循環(huán)刪除的時候最好用Delete方法,這樣先做刪除標記,然后用table.AcceptChanges()方法統(tǒng)一提交。
 

兩者是有區(qū)別的.
1.  使用myDataTable.Rows.RemoveAt(i)刪除行.
2.  使用myDataTable.Rows(i).delete
這時候需要使用
myDataTable.AcceptChanges
才能更新到數據庫.
-------------------------------
兩種方法看似第一種比較簡單.但不要在循環(huán)里使用myDataTable.Rows.RemoveAt(i).因為每刪除一行后.i的值會增加,但行數會是減少了.這么做一定會出錯.
 

服務熱線

153 8323 9821

功能和特性

價格和優(yōu)惠

網站和維護

推廣和優(yōu)化

微信服務號