DatagridView未更新(使用C#Windows应用程序)
可能重复:DatagridView未更新(使用C#Windows应用程序),c#,datagridview,C#,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; 另外,如果有任何方
这是我正在尝试的,但仍然没有更新
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查询更新DataGridView…。请尝试以下代码
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
您需要调试代码,以查看当数据适配器尝试填充数据表时,数据表是否实际填充了数据 在本例中,您应该使用绑定源。这将确保对数据表所做的任何更改都反映到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中的更改
如果可以在数据表中完成查询,则查询数据库不是一种好的做法 你怎么拒绝批准的编辑?@Jain忽略我的评论,它的mod材料。通常将
DataGirdView
绑定到业务对象数据源,例如List()
。你可以把逻辑放在GIU中,但我不建议这样做。我们需要更多的信息我认为这是winform,所以DataBind()
(无论如何,这是一个方法而不是属性)不适合这里-1大胆的假设。它不是绑定
它的更新
@jeremy Thompson。它不更新,而是使用新的datatabel值将数据重新绑定到网格。