-2

可能重复:
使用 C#.Net 更新 DataGridView

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

 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 .....

4

2 回答 2

0

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

在这种情况下,您应该使用绑定源。这将确保您对数据表所做的任何更改都反映到 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 中的更改。

如果您的查询可以在数据表中完成,则查询数据库不是一个好习惯。

于 2012-07-13T08:27:42.947 回答
-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
于 2012-07-12T11:23:41.673 回答