DataTable中Rows.RemoveAt(i)和Rows(i).Delete的區別


//delete並不是真的刪除 只是 將該row的rowstate變為 rowstate.delete(Rows.Count還是那么多)
//remove是 真的從datatable中刪除

比如:

ds.Tables[0].Rows[i].Delete();
ds.Tables[0].Rows.RemoveAt(i);

兩者是有區別的. 
1. 使用myDataTable.Rows.RemoveAt(i)刪除行.
2. 使用myDataTable.Rows(i).delete 這時候需要使用 myDataTable.AcceptChanges 才能更新到數據庫.

兩種方法看似第一種比較簡單.但不要在循環里使用myDataTable.Rows.RemoveAt(i).因為每刪除一行后.i的值會增加,但行數會是減少了.這么做一定會出錯.
因此要遍歷數據,使用Remove方式時,要倒序的遍歷
int count = ds.Tables[0].Rows.Count;
for (int i = count -1; i >=0; i--)
{
ds.Tables[0].Rows.RemoveAt(i);
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM