如何停止DataGrid添加行?

问题描述:

这是我的方法:如何停止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.复制从第一呼叫的所有记录。

谢谢问候

假设数据2是一个DataTable

结果= da.Fill(数据2);将始终合并结果,因为您使用的是同一个数据表实例。

如果您希望每次都获取新副本,而不是创建数据表的新实例并且用数据填充此实例。

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

data2 = new Datatable();

那是因为你正在重用data2。下面这行之前,您应该创建data2一个新的实例:

result = da.Fill(data2);