DatagridView未更新(使用C#Windows应用程序)

时间:2012-07-12 11:01:17

标签: c# datagridview

  

可能重复:
  Updating DataGridView using C#.Net

这是我正在尝试但仍未更新的内容。

 con.Open();
 SqlDataAdapter da = new SqlDataAdapter("Select * from Table_Name", con);
 DataTable dt = new DataTable();
 da.Fill(dt);
 da.Update(dt);
 dataGridview1.DataSource = null;
 dataGridView1.DataSource = dt;

另外,如果有任何方法使用SQL Query更新DataGridView .....

2 个答案:

答案 0 :(得分:0)

当数据适配器尝试填充数据表时,您需要调试代码以查看DatTable是否实际填充了数据。

在这种情况下,您应该使用绑定源。这将确保您对数据表所做的任何更改都反映在DataGridView对象中。

您不需要在数据适配器上调用Update(),只需要Fill()即可。

 Public BindingSource bs = new BindingSource();
 Public DataTable dt = new DataTable();

 SqlDataAdapter da = new SqlDataAdapter("Select * from Table_Name", con);

 Con.Open();

 da.Fill(dt);

 Con.Close();

 bs.DataSource = dt;

 dataGridview1.DataSource = bs;

这样做可以过滤/查询内存中的DataTable,它会立即反映datagridView中的变化。

如果您的查询可以在数据表中完成,那么查询数据库是不好的做法。

答案 1 :(得分:-2)

尝试以下代码

con.Open();  
SqlDataAdapter da = new SqlDataAdapter("Select * from Table_Name", con);  
Dataset ds = new Dataset();   //changed code from datatable to dataset
da.Fill(ds);  
da.Update(ds);  
dataGridView1.DataSource = ds;
dataGridView1.DataBind(); //databinding done here. this is missing in your code