原文:http://blog.csdn.net/cisee/article/details/3489157
在VS2008中向一個winform project中加入一個綁定數據源的時候,IDE會自動生成一個相應的dataSet.xsd文件,這個文件的用途就是相當於封裝了一層數據源,我們可以直接利用它來很方便地從數據庫中讀取數據,一般它會產生兩個類,一個是DataSet類,另一個是Adapter類,這個類的名當然是根據數據庫的表名來命名的,比如我們的數據庫裏面的表爲test, 則產生的兩個類分別爲testDataSet類和testTableAdapters, Adapters類中會自動產生一個Fill方法,來讀取數據源中的數據,當然我們也可以填加新的方法,但是默認的這些方法都不是向dataTable中追加數據,而是覆蓋原有的數據,說得更加清楚一點,是先清空,然後再Fill這個dataTable,看了一下VS自動產生的源代碼,如下:
- public virtual int Fill(testDataSet.testDataTable dataTable) {
- this.Adapter.SelectCommand = this.CommandCollection[0];
- if ((this.ClearBeforeFill == true)) {
- dataTable.Clear();
- }
- int returnValue = this.Adapter.Fill(dataTable);
- return returnValue;
- }
發現上面有個判斷語句, if ((this.ClearBeforeFill == true)), 這就是問題產生的原因, 所以如果我們想向這個dataTable中追加數據,而不是把原有的數據清空,我們只需要將Adapters類的ClearBeforeFile屬性設置爲false就可以了. 即如下:
this.testTableAdapter.ClearBeforeFill = false;
這樣就可以實現追加數據的功能了 ^_^