• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            twzheng's cppblog

            『站在風(fēng)口浪尖緊握住鼠標(biāo)旋轉(zhuǎn)!』 http://www.cnblogs.com/twzheng

              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
              136 隨筆 :: 78 文章 :: 353 評(píng)論 :: 0 Trackbacks
            從 DataTable 對(duì)象中刪除 DataRow 對(duì)象 遇到的問題

                  我用DataTable的DataRow.Delete方法從表中刪除一行時(shí),界面是自動(dòng)更新了(移除了剛才刪除的行),DataRow.Count減了1,但是這時(shí)再次循環(huán)訪問該DataTable,則拋出“不能通過已刪除的行訪問。。。”異常。在調(diào)試狀態(tài)下查看DataTable刪除操作后的數(shù)據(jù)顯示,剛才刪除行的位置確實(shí)沒有數(shù)據(jù),但該行并沒有真正的刪除,仍然占據(jù)著位置,所以再次循環(huán)訪問到這行的時(shí)候會(huì)拋出異常。
                  
                  用于從 DataTable 對(duì)象中刪除 DataRow 對(duì)象的方法有兩種:DataRowCollection 對(duì)象的 Remove 方法和 DataRow 對(duì)象的 Delete 方法。Remove 方法從 DataRowCollection 中刪除 DataRow,而 Delete 方法只將行標(biāo)記為刪除。當(dāng)應(yīng)用程序調(diào)用 AcceptChanges 方法時(shí),才會(huì)發(fā)生實(shí)際的刪除。通過使用 Delete,您可以在實(shí)際刪除之前先以編程方式檢查哪些行標(biāo)記為刪除。如果將行標(biāo)記為刪除,其 RowState 屬性會(huì)設(shè)置為 Deleted。

                  在將 DataSet 或 DataTable 與 DataAdapter 和關(guān)系型數(shù)據(jù)源一起使用時(shí),用 DataRow 的 Delete 方法移除行。Delete 方法只是在 DataSet 或 DataTable 中將行標(biāo)記為 Deleted,而不會(huì)移除它。而 DataAdapter 在遇到標(biāo)記為 Deleted 的行時(shí),會(huì)執(zhí)行其 DeleteCommand 方法以在數(shù)據(jù)源中刪除該行。然后,就可以用 AcceptChanges 方法永久移除該行。如果使用 Remove 刪除該行,則該行將從表中完全移除,但 DataAdapter 不會(huì)在數(shù)據(jù)源中刪除該行。

            private void DemonstrateDeleteRow()
            {
                
            // Create a simple DataTable with two columns and ten rows.
                DataTable table = new DataTable("table");
                DataColumn idColumn 
            = new DataColumn("id",
                    Type.GetType(
            "System.Int32"));
                idColumn.AutoIncrement
            =true;
                DataColumn itemColumn 
            = new DataColumn("item"
                    Type.GetType(
            "System.String"));
                table.Columns.Add(idColumn);
                table.Columns.Add(itemColumn);

                
            // Add ten rows.
                DataRow newRow;
                 
                
            for(int i = 0; i <10; i++)
                
            {
                    newRow 
            = table.NewRow();
                    newRow[
            "item"= "Item " + i;
                    table.Rows.Add(newRow);
                }

                table.AcceptChanges();

                DataRowCollection itemColumns 
            = table.Rows;
                itemColumns[
            0].Delete();
                itemColumns[
            2].Delete();
                itemColumns[
            3].Delete();
                itemColumns[
            5].Delete();
                Console.WriteLine(itemColumns[
            3].RowState.ToString());

                
            // Reject changes on one deletion.
                itemColumns[3].RejectChanges();

                
            // Change the value of the column so it stands out.
                itemColumns[3]["item"= "Deleted, Undeleted, Edited";

                
            // Accept changes on others.
                table.AcceptChanges();

                
            // Print the remaining row values.
                foreach(DataRow row in table.Rows)
                
            {
                    Console.WriteLine(row[
            0+ "\table" + row[1]);
                }

            }

            posted on 2008-02-29 15:12 譚文政 閱讀(3519) 評(píng)論(1)  編輯 收藏 引用 所屬分類: C#

            評(píng)論

            # re: 從 DataTable 對(duì)象中刪除 DataRow 對(duì)象 遇到的問題 2009-11-28 11:55 路過
            獲得刪除的行
            DataTable.GetChanges(DataRowState.Deleted);
            使用刪除行的值
            row["列名", DataRowVersion.Original]  回復(fù)  更多評(píng)論
              

            久久国产成人午夜aⅴ影院| 免费观看成人久久网免费观看| 国産精品久久久久久久| 手机看片久久高清国产日韩| 久久人妻无码中文字幕| 亚洲狠狠婷婷综合久久蜜芽| 青青草国产精品久久久久| 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 久久精品aⅴ无码中文字字幕不卡| 国产精品对白刺激久久久| 欧美麻豆久久久久久中文| 久久精品人人做人人爽97| 午夜精品久久影院蜜桃| 亚洲国产精品久久久久婷婷软件| 久久国内免费视频| 久久青青草原国产精品免费| 久久亚洲AV无码精品色午夜| 91精品国产91久久久久久青草| 国产香蕉久久精品综合网| 久久精品一区二区国产| 婷婷伊人久久大香线蕉AV | 久久丫精品国产亚洲av| 精品无码久久久久久国产| 久久久噜噜噜久久中文福利| 亚洲欧美日韩久久精品| 国产精品99久久久久久www| 精品无码久久久久久尤物| 久久婷婷色综合一区二区| 久久国产香蕉视频| 精品久久国产一区二区三区香蕉 | 99久久精品免费看国产一区二区三区| 97久久精品人人澡人人爽| 久久精品成人免费看| 成人综合伊人五月婷久久| 久久久久久亚洲精品成人| 少妇人妻综合久久中文字幕| 亚洲国产日韩欧美综合久久| 久久久久久一区国产精品| 久久久精品久久久久久| 久久久久久A亚洲欧洲AV冫| 久久精品国产第一区二区|