一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

DataTable循環(huán)刪除行

 shymi 2011-08-22
       1.如果只是想刪除datatable中的一行,可以用DataRow的delete,但是必須要刪除后讓DataTable知道,所以就要用到.AcceptChanges()方法,原因是這種刪除只是標(biāo)識性刪除,就像我們通常在數(shù)據(jù)庫中用到的IsDelete字段。

       2.徹底刪除就要用到datatable的.Rows.Remove(DataRow dr)方法,同理也只是刪除一行可以,如果要循環(huán)刪除請繼續(xù)往下看。

       3.循環(huán)徹底刪除就要用.Rows.RemoveAt(int index)方法,所以如果你是foreach的愛好者,在此請你換換口味,還有如果你是for的i++的忠實fans也希望你能換個思維。先看一下上面程序的正向?qū)懛ǎㄥe誤的,不可用)

        for (int i = 0, j = dt.Rows.Count; i < j; i++)
        {
            
if (Convert.ToInt32(dt.Rows[i]["RowID"]) == RowID)
                dt.Rows.RemoveAt(i);
        }
 

  這個的錯誤在于datatable的RemoveAt()會在刪除后更新dataTable的index,所以你要刪除的index可能已經(jīng)不是你的符合Convert.ToInt32(dt.Rows[i]["RowID"]) == RowID的index了,甚者還會拋出異常,說你訪問的index不存在。

  所以要從DataTable的下面往上查找刪除,這樣即使這行符合條件被刪除了,上面的行依舊不受影響。

        正確的寫法如下:

    protected void deleteDataRow(int RowID,DataTable dt)
    {
        
for (int i = dt.Rows.Count - 1; i >= 0; i--)
        {
            
if (Convert.ToInt32(dt.Rows[i]["RowID"]) == RowID)
                dt.Rows.RemoveAt(i);
        }
    }

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    蜜桃传媒在线正在播放| 欧洲精品一区二区三区四区| 久久精品国产在热亚洲| 国产一区日韩二区欧美| 国产欧美日韩不卡在线视频| 日本欧美三级中文字幕| 五月婷婷综合缴情六月| 中文字幕久久精品亚洲乱码| 久久大香蕉一区二区三区| 国产欧美日韩在线精品一二区| 中文字幕有码视频熟女| 国产亚洲二区精品美女久久| 国产精品成人免费精品自在线观看| 国产一二三区不卡视频| 丁香七月啪啪激情综合| 五月天丁香亚洲综合网| 午夜精品久久久99热连载| 日本午夜乱色视频在线观看| 熟妇久久人妻中文字幕| 男女一进一出午夜视频| 国产黄色高清内射熟女视频| 日韩一级免费中文字幕视频| 免费观看日韩一级黄色大片| 免费观看日韩一级黄色大片| 东京热加勒比一区二区三区| 人人妻人人澡人人夜夜| 一级片黄色一区二区三区| 国产日韩中文视频一区| 亚洲av熟女国产一区二区三区站| 大伊香蕉一区二区三区| 色婷婷国产精品视频一区二区保健| 91亚洲国产日韩在线| 青青操视频在线播放免费| 国产女同精品一区二区| 中文字幕日韩精品人一妻| 日韩中文字幕欧美亚洲| 五月婷婷亚洲综合一区| 伊人色综合久久伊人婷婷| 日韩女优精品一区二区三区| 精品国产av一区二区三区不卡蜜| 又色又爽又无遮挡的视频 |