日期:2014-05-18  浏览次数:20996 次

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];

------解决方案--------------------
把具体要求说一下!
------解决方案--------------------
探讨
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();前面试试