+ -
当前位置:首页 → 问答吧 → winform DataGridView access数据库批量更新问题

winform DataGridView access数据库批量更新问题

时间:2011-12-06

来源:互联网

1、用for语句执行更新操作 " UPDATE。。。为何循环不执行会结束,不能进行第二次循环就直接跳出循环执行.Close()了?
2、在DataGridView中修改数据后,有什么更好的ACCESS数据库更新多行方法?
给出参考代码

作者: xianfajushi   发布时间: 2011-12-06

C# code
 public static OleDbDataAdapter AdapterUpdate(string SelectString, DataTable tableName,string connectionString)
        {

            OleDbDataAdapter Adapter = new OleDbDataAdapter();
            
            using (OleDbConnection connetion = new OleDbConnection(connectionString))
            {
                Adapter.SelectCommand = new OleDbCommand(SelectString, connetion);

                OleDbCommandBuilder builder = new OleDbCommandBuilder(Adapter);
                Adapter.UpdateCommand = builder.GetUpdateCommand();
               
                 Adapter.Update(tableName);
                 table.AcceptChanges();
                 return Adapter;
               
            }
        }
//调用
 DataTable table = (DataTable)dataGridView1.DataSource;
 AdapterUpdate(SelectSql, table,connectionString)//SelectSql为查询语句 connectionString //为数据库连接语句

作者: DENQH   发布时间: 2011-12-06

问题在于为了方便只显示一个表中2行数据显示在控件中编辑,更新要限定条件,找到对应的如ID号才执行更新这2行.

作者: xianfajushi   发布时间: 2011-12-06

不要用for循环去做,那样繁琐,直接用OleDbCommandBuilder ,它会自动根据DataGridView的数据源DataTable的行状态,更新数据库!

试试楼上的。。。

作者: sdl2005lyx   发布时间: 2011-12-06

只要你绑定了DataTable,不管你是怎么操作,用上面的方法,在dataGridView1新添加行,会在数据库新加一行,修改会更新数据库存相应行

作者: DENQH   发布时间: 2011-12-06