靈魂-放水

          為學日益,為道日損。

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            296 Posts :: 10 Stories :: 274 Comments :: 0 Trackbacks
          記錄個自己的低級錯誤!!!!!!!!!!!!!!!!!

          今天在對一個表進行刪除,發現以下問題:

          先附一段代碼:(方便調試,加了些MessageBox.)
          ??????????? string deleteID = this.costomerDataGrid[this.costomerDataGrid.CurrentRowIndex, 6].ToString();
          ?????????? ?this.costomer_RecordTableAdapter.Fill(this.realEstatePDADataSet.Costomer_Record);
          ??????????? MessageBox.Show("過濾前的dataView集合數:"+this.dataView2.Count.ToString());
          ??????????? this.dataView2.RowFilter = "客戶編號 = '" +deleteID+ "'";
          ??????????? //this.dataView1.Sort = "來訪時間";
          ??????????? MessageBox.Show("過濾條件:" + deleteID);
          ??????????? MessageBox.Show("過濾后的dataView集合數:"+this.dataView2.Count.ToString());
          ??????????? this.costomer_RecordBindingSource.EndEdit();
          ??????????? for (int i = 0; i < this.dataView2.Count; i++)
          ??????????? {
          ??????????????? MessageBox.Show("刪除第"+i+"條記錄");
          ??????????????? this.costomer_RecordBindingSource.RemoveAt(i);
          ??????????? }
          ??????????? this.costomer_RecordTableAdapter.Update(this.realEstatePDADataSet.Costomer_Record);
          ??????????? MessageBox.Show("刪除成功!");

          出現問題:表中的記錄沒被清除完全。仔細檢查,發現Data.Count屬性隨著循環刪除,每次比較 i < this.dataView2.Count,Count屬性也是動態變化的。解決辦法:
          ??????????? string deleteID = this.costomerDataGrid[this.costomerDataGrid.CurrentRowIndex, 6].ToString();
          ??????????? this.costomer_RecordTableAdapter.Fill(this.realEstatePDADataSet.Costomer_Record);
          ??????????? MessageBox.Show("過濾前的dataView集合數:"+this.dataView2.Count.ToString());
          ??????????? this.dataView2.RowFilter = "客戶編號 = '" +deleteID+ "'";
          ??????????? //this.dataView1.Sort = "來訪時間";
          ??????????? MessageBox.Show("過濾條件:" + deleteID);
          ??????????? MessageBox.Show("過濾后的dataView集合數:"+this.dataView2.Count.ToString());
          ??????????? this.costomer_RecordBindingSource.EndEdit();
          ??????????? while(this.dataView2.Count!=0)
          ??????????? {
          ??????????????? MessageBox.Show("刪除第" + Convert.ToSingle(this.dataView2.Count)+ "條記錄");
          ??????????????? this.costomer_RecordBindingSource.RemoveAt(this.dataView2.Count-1);
          ??????????? }
          ??????????? this.costomer_RecordTableAdapter.Update(this.realEstatePDADataSet.Costomer_Record);
          ??????????????? MessageBox.Show("刪除成功!");

          posted on 2007-02-01 20:12 放水老倌 閱讀(956) 評論(0)  編輯  收藏 所屬分類: .NET
          主站蜘蛛池模板: 大英县| 镇原县| 上杭县| 苏尼特右旗| 左权县| 清徐县| 镇原县| 衢州市| 汉源县| 仁怀市| 历史| 漳浦县| 封丘县| 五河县| 开远市| 阿勒泰市| 长顺县| 石渠县| 紫金县| 合肥市| 开鲁县| 西乌| 西盟| 从化市| 崇礼县| 昭觉县| 集贤县| 凤城市| 都江堰市| 西丰县| 西乡县| 甘南县| 桃源县| 西安市| 突泉县| 五大连池市| 嘉鱼县| 米脂县| 横山县| 托克逊县| 昌平区|