datagridview Update时的问题

jesse1117 2014-11-24 11:28:04

update的时候会报这个错误

MySqlCommandBuilder sb = new MySqlCommandBuilder(m_da);

m_da.Update(m_dt);

m_da是dataadapter m_dt是绑定的datatable
...全文
293 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lll_2630826323 2014-11-25
  • 打赏
  • 举报
回复
DataGridView Update修改数据示例 //操作数据库类设置 class datatier { private SqlConnection GetConnection() { //返回连接到数据库的SqlConnection对象 return new SqlConnection("server=WRET-MOSY688YVW\\MRGLL;database=db_test;Trusted_Connection=true"); } private List<Instance> GetList(SqlDataReader sdr) { List<Instance> lit = new List<Instance>();//定义集合对象 while (sdr.Read())//遍历SqlDataReader对象 { //向集合对象内添加内容 lit.Add(new Instance() { Name = sdr[0].ToString(), phone = sdr[1].ToString() }); } return lit;//返回集合对象 }//codego.net/tags/11/1/ public void Update(Instance it) { SqlConnection sc = GetConnection();//调用GetConnections()方法,得到连接对象 try { sc.Open();//打开到数据库的连接 SqlCommand cmd = new SqlCommand(//创建SqlCommand对象 "update tb_friend set phone=@phone where names=@names", sc); cmd.Parameters.Add("@names", SqlDbType.VarChar).Value = it.Name;//向SqlCommand对象添加参数 cmd.Parameters.Add("phone", SqlDbType.VarChar).Value = it.phone;//向SqlCommand对象添加参数 cmd.ExecuteNonQuery();//执行SqlCommand对象中的SQL命令 } catch (Exception ex) { Console.WriteLine(ex.Message); } finally { if (sc.State == ConnectionState.Open)//判断是否连接数据库 { sc.Close();//如果已经连接则关闭连接 } } } } //绑定控件修改数据 private datatier dt = new datatier();//定义datatier类型的私有字段 private void btn_update_Click(object sender, EventArgs e) { //调用datatier对象的Update()方法,更改数据库中的信息 dt.Update(new Instance() { Name = txt_name_update.Text, phone = txt_phone_update.Text }); dataGridView1.DataSource = dt.Select();//更新dataGridView1控件中的信息 Clear();//清空TextBox控件中的文本 }
jesse1117 2014-11-24
  • 打赏
  • 举报
回复
引用 2 楼 duanzi_peng 的回复:
数据库表 是不是没有设置自增的列?在添加的时候 使用builder 自动返回个标示列 并插入数据库?
我的表里有自增的字段的
jesse1117 2014-11-24
  • 打赏
  • 举报
回复
引用 1 楼 bdmh 的回复:
你的builder里有自增字段,提示告诉你了,如果有,就不能设置updaterowsource
哦 对 我的表里有自增的字段,那我应该怎么弄?
exception92 2014-11-24
  • 打赏
  • 举报
回复
数据库表 是不是没有设置自增的列?在添加的时候 使用builder 自动返回个标示列 并插入数据库?
bdmh 2014-11-24
  • 打赏
  • 举报
回复
你的builder里有自增字段,提示告诉你了,如果有,就不能设置updaterowsource
jesse1117 2014-11-24
  • 打赏
  • 举报
回复
引用 6 楼 q772905418 的回复:
把自增字段干掉。或者自增字段不放在m_dt;例如select id,Name from table,id是自增的,那么你就只查select Name from table 把Name放m_dt里面,试试?
不是这个问题。。。 因为我表里没有自增字段的时候也不行 他是在这种情况下才出现的 就是我添加一行保存一下 再把这行删掉 再保存一下 再添加保存的时候就出错了 别的情况下还没有发现报错
q772905418 2014-11-24
  • 打赏
  • 举报
回复
把自增字段干掉。或者自增字段不放在m_dt;例如select id,Name from table,id是自增的,那么你就只查select Name from table 把Name放m_dt里面,试试?
jesse1117 2014-11-24
  • 打赏
  • 举报
回复
谁能帮帮我啊。。。

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧