我想对dataGridView单元格的值进行修改 并更新到数据库 问如何实现? 我写了循环 可只修改其中一部分的单元格 最后没修改的就重复了 所以这个方法不行 那如何才能实现修改的功能呢?谢谢!(因为dataGridView1里的数据来源于数据库多个表,故不能用整个表一起更新,只能这样逐一的更新了) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 别顶了,百度 dataGridView更新数据库 LZ,应该自己定制一个dataGridView控件.让每个单元格继承修改数据的方法(用以更新数据库)整表更新不合理,整行更新不理想,只更新单个数据更好. “dataGridView1里的数据来源于数据库多个表”,你是用的视图吗?既然你向用dataGridView控件直接增删改数据,那么最好直接对于具体数据库表!根据DataRowState的行状态,DataAdapter.Update 将更新数据库。 我用的是联合查询,和视图差不多,你说的方法我也试过,用DataAdapter.Update时它找不到修改的值究竟是属于哪个数据库,故要报错,只有一一Update了。求更详细的办法。 我这样做的肯定不行,没改的就全重复了,数据表中有主键,这样是行不通,可我想一一更新,可不知道怎么判断是否已修改,再说这样效率很低的,有没有好的办法啊 try { using (SqlConnection conn = new SqlConnection("server=.;database=NBA;uid=sa;pwd=")) { conn.Open(); for (int i = 0; i < intCountBeg - 1; i++) { SqlCommand cmd3 = new SqlCommand("update player set 球衣号='" + dataGridView1[0, i].Value.ToString() + "',球员='" + dataGridView1[1, i].Value.ToString() + "', 球队='" + dataGridView1[2, i].Value.ToString() + "'", conn); SqlCommand cmd4 = new SqlCommand("update basketball set 球员='" + dataGridView1[1, i].Value.ToString() + "',位置='" + dataGridView1[3, i].Value.ToString() + "'", conn); cmd3.ExecuteNonQuery(); cmd4.ExecuteNonQuery(); cmd3.Dispose(); cmd4.Dispose(); } MessageBox.Show("更新成功!"); conn.Close(); 楼主,你明白我的意思,既然你用联合查询(其实就是视图),那你最好只用来做显示用!因为联合查询对于数据表来说,它们并不是真正的源!要借助datagridview对数据库表进行增删改操作,就针对具体的一个表。 我看了 一般的update command只能针对一个表,对于多个表,要自己写数据适配器的update command,这怎么写啊 有人会吗。此方法也许能行! 我现在自定义的适配器 可说有语法错误 大家帮我看看 错在哪儿啊 我实在找不出啊 sda.UpdateCommand = new SqlCommand("update player set [球衣号]=@球衣号,[球员]=@球员,[球队]=@球队 where [球衣号]=@Original_球衣号,[球员]=@Original_球员,[球队]=@Original_球队", conn); sda.UpdateCommand.Parameters.Add(new SqlParameter("@Original_球衣号", SqlDbType.VarChar, 50, "球衣号")); sda.UpdateCommand.Parameters.Add(new SqlParameter("@球衣号", SqlDbType.VarChar, 50, "球衣号")); sda.UpdateCommand.Parameters.Add(new SqlParameter("@Original_球员", SqlDbType.VarChar, 50, "球员")); sda.UpdateCommand.Parameters.Add(new SqlParameter("@球员", SqlDbType.VarChar, 50,"球员")); sda.UpdateCommand.Parameters.Add(new SqlParameter("@Original_球队", SqlDbType.VarChar, 50,"球队")); sda.UpdateCommand.Parameters.Add(new SqlParameter("@球队", SqlDbType.VarChar, 50, "球队")); sda.Update(ds.Tables[0]); 万能的CSDNer,初学者求正则表达式 C#如何判断webbrowser页面中的层加载状态? 简单缓存的问题,第一次用缓存 关于access 导出为excel问题 C# 有搜索欄控件嗎?我指搜索框最後有一個小小的查找圖片那種 关于comboBox绑定数据 如何将123023456这种形式转换为1,023,456? 怎么用C#对access数据库进行压缩和修复? 可变数组与多维可变数组区别? 如何定义方法? 求模拟登陆得到页面源文件后字符串的提取,谢谢 求一个改变服务器连接指向的插件
让每个单元格继承修改数据的方法(用以更新数据库)
整表更新不合理,整行更新不理想,只更新单个数据更好.
根据DataRowState的行状态,DataAdapter.Update 将更新数据库。
try
{
using (SqlConnection conn = new SqlConnection("server=.;database=NBA;uid=sa;pwd="))
{
conn.Open();
for (int i = 0; i < intCountBeg - 1; i++)
{
SqlCommand cmd3 = new SqlCommand("update player set 球衣号='" + dataGridView1[0, i].Value.ToString() + "',球员='" + dataGridView1[1, i].Value.ToString() + "', 球队='" + dataGridView1[2, i].Value.ToString() + "'", conn);
SqlCommand cmd4 = new SqlCommand("update basketball set 球员='" + dataGridView1[1, i].Value.ToString() + "',位置='" + dataGridView1[3, i].Value.ToString() + "'", conn);
cmd3.ExecuteNonQuery();
cmd4.ExecuteNonQuery();
cmd3.Dispose();
cmd4.Dispose();
}
MessageBox.Show("更新成功!");
conn.Close();
sda.UpdateCommand = new SqlCommand("update player set [球衣号]=@球衣号,[球员]=@球员,[球队]=@球队 where [球衣号]=@Original_球衣号,[球员]=@Original_球员,[球队]=@Original_球队", conn);
sda.UpdateCommand.Parameters.Add(new SqlParameter("@Original_球衣号", SqlDbType.VarChar, 50, "球衣号"));
sda.UpdateCommand.Parameters.Add(new SqlParameter("@球衣号", SqlDbType.VarChar, 50, "球衣号"));
sda.UpdateCommand.Parameters.Add(new SqlParameter("@Original_球员", SqlDbType.VarChar, 50, "球员"));
sda.UpdateCommand.Parameters.Add(new SqlParameter("@球员", SqlDbType.VarChar, 50,"球员"));
sda.UpdateCommand.Parameters.Add(new SqlParameter("@Original_球队", SqlDbType.VarChar, 50,"球队"));
sda.UpdateCommand.Parameters.Add(new SqlParameter("@球队", SqlDbType.VarChar, 50, "球队"));
sda.Update(ds.Tables[0]);