日期:2014-05-17  浏览次数:20713 次

求助:datagridview数据修改与更改数据库问题
请教...能不能在datagridview中双击一个单元格然后转为编辑模式(这个我会...),然后更改数据后,按回车,或鼠标点击其他地方时自动把更改的新内容上传到数据库呢?

------解决方案--------------------
把控件数据读到表,用表去更新数据库。
C# code

        public static OleDbDataAdapter 表编辑后更新数据库(string 表达式, DataTable 数据表名, string 数据连接字符串)
        {
            OleDbDataAdapter 数据表更新数据库 = new OleDbDataAdapter(); DataRow 提示 = 数据表名.Rows[0];
            try
            {
                using (OleDbConnection 打开连接 = new OleDbConnection(数据连接字符串))
                {
                    数据表更新数据库.SelectCommand = new OleDbCommand(表达式, 打开连接);
                    OleDbCommandBuilder 关联数据库 = new OleDbCommandBuilder(数据表更新数据库);
                    数据表更新数据库.UpdateCommand = 关联数据库.GetUpdateCommand();
                    数据表更新数据库.Update(数据表名);
                    int 影响数 = 数据表名.AcceptChanges(); 
                }
                if(影响数 > 0) MessageBox.Show("[" + 提示.ItemArray[3].ToString() + "☆" + 提示.ItemArray[4].ToString() + "],数据保存成功!", "友情提醒", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
            }
            catch (Exception Ts)
            { MessageBox.Show("表更新:对发生的错误表示抱歉!阐述发生错误时的具体操作过程和错误序号!" + Ts.ToString(), "错误"); }
            finally { }
            return 数据表更新数据库;
        }

------解决方案--------------------
在winform下这个是很简单的。
1、拖一个DataGridView到面板上
2、拖一个BindingSource到面板上
3、在BindingSource的属性中设置DataSource属性(数据库-->数据集-->连接数据库-->选择一个表)
4、设置该BindingSource的属性DataMenber你要绑定的那张表
5、在界面上的DataGridView中选择刚才设置的数据源
该操作会在Form_Load事件中生成如下代码:
C# code

            // TODO: 这行代码将数据加载到表“testDataSet.a”中。您可以根据需要移动或删除它。
            this.aTableAdapter.Fill(this.testDataSet.a);