2010-10-11 67 views
2

這是我的方法:如何停止DataGrid添加行?

Datatable data2 = new Datatable(); 
int result = 0; 
using (SqlConnection conn = new SqlConnection(connStr)) 
{ 
    try 
    { 
     SqlCommand cmd = new SqlCommand(); 
     cmd.Connection = conn; 
     conn.Open(); 
     cmd.CommandText = "SELECT * from TableA"; 
     SqlDataAdapter da = new SqlDataAdapter(cmd); 
     result = da.Fill(data2); 

     if (result > 0) 
     { 
      this.dgBatch.DataSource = data2; 
     } 
     else 
     { 
      MessageBox.Show("No Records!"); 
     } 
    } 
    catch (Exception ee) 
    { 
     MessageBox.Show(ee.Message); 
    } 
    finally 
    { 
     if (conn.State == ConnectionState.Open) conn.Close(); 
    } 
} 

如果我把這種方法連續它總是第一個查詢添加行。

例:
   表數據:5
   首先調用:5
   第二個呼叫:10.複製從第一呼叫的所有記錄。

謝謝問候

回答

1

假設數據2是一個DataTable

結果= da.Fill(數據2);將始終合併結果,因爲您使用的是同一個數據表實例。

如果您希望每次都獲取新副本,而不是創建數據表的新實例並且用數據填充此實例。

所以行結果= da.Fill(data2);添加以下行。

data2 = new Datatable();

3

那是因爲你正在重用data2。下面這行之前,您應該創建data2一個新的實例:

result = da.Fill(data2);