datagridview同步更新数据库如何实现?
C# code
string sql2 = "select * from b1";
string strConnection = "Provider=Microsoft.Jet.OleDb.4.0;Data Source="
+ Application.StartupPath
+ "\\db1.MDB";
OleDbConnection conn = new OleDbConnection(strConnection);
OleDbDataAdapter adp = new OleDbDataAdapter(sql2,conn);
OleDbCommandBuilder ocb = new OleDbCommandBuilder(adp);
DataTable dt = new DataTable();
//DataSet ds = new DataSet();
BindingSource bs = new BindingSource();
conn.Open();
adp.Fill(dt);
this.dataGridView1.DataSource = dt;
bs.DataSource = dt;
conn.Close();
adp.Update((DataTable)bs.DataSource);
以上是网上抄的我修改了一下 但是无法实现,请朋友们帮忙看看那里不对谢谢了!
------解决方案--------------------DataSet ds = new DataSet();
SqlDataAdapter sda;
SqlCommandBuilder scb = new SqlCommandBuilder(sda);
sda.Update(ds);
this.dataGridView1.DataSource = ds.Tables[0];
------解决方案--------------------把具体要求说一下!
------解决方案--------------------
------解决方案--------------------ds中的表实际上就是你关联数据库读取的表。
是同一个表就可以,实现关联update,必须包含主键。
------解决方案--------------------Update语句执行完成后,还是要重新绑定下数据,已达到同步更新数据库数据。。。
------解决方案--------------------string sql2 = "select * from b1";
string strConnection = "Provider=Microsoft.Jet.OleDb.4.0;Data Source="
+ Application.StartupPath
+ "\\db1.MDB";
OleDbConnection conn = new OleDbConnection(strConnection);
OleDbDataAdapter adp = new OleDbDataAdapter(sql2,conn);
OleDbCommandBuilder ocb = new OleDbCommandBuilder(adp);
DataTable dt = new DataTable();
//DataSet ds = new DataSet();
BindingSource bs = new BindingSource();
conn.Open();
adp.Fill(dt);
this.dataGridView1.DataSource = dt.Tables[0].DefaultView;
bs.DataSource = dt;
conn.Close();
adp.Update((DataTable)bs.DataSource);
------解决方案--------------------从新调用下绑定方法,就是同步更新了。
------解决方案--------------------bs.EndEdit();
this.dataGridView1.EndEdit();
TableAdapter.Update((DataTable)bs.DataSource);
TableAdapter.Fill((DataTable)bs.DataSource);
这个加在conn.Close();前面试试