DataTable的DT數據表刪除行和AcceptChanges的
num type name
===================================
001 A Peter
002 A Sam
003 B John
public static void fun1(ref DataTable DT, String TargetType)
{
for (int i = 0; i < DT.Rows.Count; i++)
{
string type = DT.Rows[i]["type"];
if (type == TargetType)
{
/**Do Something**/
DT.Rows[i].Delete();
}
}
DT.AcceptChanges();
}
我的功能得到具體的數據行。讀取數據行(匹配目標類型)後,它將被刪除。
但是,該行在執行.Delete()後立即刪除,因此下一行(由i)的位置不正確。
例如,如果TargetType是A.當i = 0時,執行.Delete後刪除「Peter」行。然後,當我= 1,我想它會找到「山姆」行,但它實際上位於「約翰」行,因爲「彼得」行被刪除。
我的代碼有問題嗎?
我認爲當鍵入== TargetType並刪除該行時,您應該將i的值減1,以便當它刪除i = 0時,1 = 1處的行移動到i = 0,然後它會檢查並刪除該行,如果在i = 0時刪除行然後遞減,則應該設置i = 0的值,您還需要再檢查一次。 –