求助:datagridview数据修改与更改数据库问题 请教...能不能在datagridview中双击一个单元格然后转为编辑模式(这个我会...),然后更改数据后,按回车,或鼠标点击其他地方时自动把更改的新内容上传到数据库呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 把控件数据读到表,用表去更新数据库。 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 数据表更新数据库; } private void 生成表() { string[] 创建 = new string[]{"1","2","3","4","5"}; DataTable 设定表 = new DataTable(); 设定表.TableName = "设定表"; foreach (string 数据列 in 创建) 条件设定表.Columns.Add(数据列); this.BeginInvoke(new Action(delegate() { for (int 行 = 0, 数 = 设定.RowCount - 1; 行 < 数; 行++) { 设定表.Rows.Add(); for (int 列 = 0, 量 = 设定.ColumnCount; 列 < 量; 列++) 设定表.Rows[行][列] = 设定.Rows[行].Cells[列].Value; } })); string 表达式 = "SELECT * FROM _ZiYuan WHERE _IDbiaoji =" + ID; 表编辑后更新数据库(表达式, 设定表, 数据连接字符串); }设定:是个datagridview控件 在winform下这个是很简单的。1、拖一个DataGridView到面板上2、拖一个BindingSource到面板上3、在BindingSource的属性中设置DataSource属性(数据库-->数据集-->连接数据库-->选择一个表)4、设置该BindingSource的属性DataMenber你要绑定的那张表5、在界面上的DataGridView中选择刚才设置的数据源 该操作会在Form_Load事件中生成如下代码: // TODO: 这行代码将数据加载到表“testDataSet.a”中。您可以根据需要移动或删除它。 this.aTableAdapter.Fill(this.testDataSet.a);6、在DataGridView的CellEndEdit事件中添加一句代码: private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e) { //我这里操作的是test数据库的a表(根据实际情况做修改) this.aTableAdapter.Update(this.testDataSet.a); }就这样工作就完成了,这是利用了SqlDataAdapter的UpdateCommand来实现的。 谢谢!~效仿了一下,可是datagridview里面的数据改了也更新不到数据库里呢... 我添加dataAdapter和dataBuilder试了一下,同样是da.Update((DataTable)bs.DataSource),添加到按钮事件中就可以实现,添加到dataGridView1_CellEndEdit中,就不能更新数据库...为什么呢... 你是向我一样全部拖的控件呢?还是自己写的代码呢?没更新到数据库?da.Update报错吗? 可以把 gridview每个单元格中的数据提取出来 用SQL update 语句更新 完完全全按照您说的,拖得控件,没有报错,但就像我说了,添加的是按钮事件就好用,是不是dataGridView1_CellEndEdit这个事件实施上有问题呢 wpf 游戏 怎么控制win7里面的声音音量 该功能如何实现? C#摄像头拍照片,急。。。。。 C# 将xml文件中的中文乱码替换为对应数值 关于动网回帖,召唤达人(纯技术研究) 请问如何在C#中产生随机整数,举例说明? Excel操作的问题!小问题 都来看看 拿分了啊!:) 如果实现odbc数据源自动注册 怎样从数据库中获取数据并以linkbutton的形式显示在页面上 C#中调用C程序,无法调用函数 Socket接收的数据不全是 单步执行就可以全部接收
{
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 数据表更新数据库;
} private void 生成表()
{
string[] 创建 = new string[]{"1","2","3","4","5"};
DataTable 设定表 = new DataTable();
设定表.TableName = "设定表";
foreach (string 数据列 in 创建)
条件设定表.Columns.Add(数据列);
this.BeginInvoke(new Action(delegate()
{
for (int 行 = 0, 数 = 设定.RowCount - 1; 行 < 数; 行++)
{
设定表.Rows.Add();
for (int 列 = 0, 量 = 设定.ColumnCount; 列 < 量; 列++)
设定表.Rows[行][列] = 设定.Rows[行].Cells[列].Value;
}
}));
string 表达式 = "SELECT * FROM _ZiYuan WHERE _IDbiaoji =" + ID;
表编辑后更新数据库(表达式, 设定表, 数据连接字符串);
}设定:是个datagridview控件
1、拖一个DataGridView到面板上
2、拖一个BindingSource到面板上
3、在BindingSource的属性中设置DataSource属性(数据库-->数据集-->连接数据库-->选择一个表)
4、设置该BindingSource的属性DataMenber你要绑定的那张表
5、在界面上的DataGridView中选择刚才设置的数据源
该操作会在Form_Load事件中生成如下代码: // TODO: 这行代码将数据加载到表“testDataSet.a”中。您可以根据需要移动或删除它。
this.aTableAdapter.Fill(this.testDataSet.a);6、在DataGridView的CellEndEdit事件中添加一句代码: private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
//我这里操作的是test数据库的a表(根据实际情况做修改)
this.aTableAdapter.Update(this.testDataSet.a);
}
就这样工作就完成了,这是利用了SqlDataAdapter的UpdateCommand来实现的。
你是向我一样全部拖的控件呢?还是自己写的代码呢?
没更新到数据库?da.Update报错吗?