这是我正在尝试但仍未更新的内容。
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 .....
答案 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