问题描述
出现了这个问题真的不知道怎么解决啊我是初学请大家帮帮忙啊代码是这样的privatevoidbutton1_Click(objectsender,EventArgse){DataTabledt=ds.Tables["cs"];sda.FillSchema(dt,SchemaType.Mapped);DataRowdr=dt.Rows.Find(txtNo.Text);dr["name"]=txtName.Text.Trim();dr["dept"]=txtDept.Text.Trim();dr["age"]=txtAge.Text.Trim();dr["sex"]=txtSex.Text.Trim();MySqlCommandBuildercmdbuilder=newMySqlCommandBuilder(sda);sda.Update(dt);}错误指向的是sda.Updata(dt);这一句
解决方案
本帖最后由 lihelihe199019901990 于 2014-09-17 09:38:15 编辑
解决方案二:
cs表没有主健字段吧
解决方案三:
引用1楼gxingmin的回复:
cs表没有主健字段吧
好像是啊我MySql数据库里设置的主键是id但我想让id不可修改您看我这个应该怎么修改呢
解决方案四:
改不改id,你自己代码可以控制dataset里必须有主健字段
解决方案五:
引用3楼gxingmin的回复:
改不改id,你自己代码可以控制dataset里必须有主健字段
我明白您的意思了能不能请您指教一下怎么设置呢我是需要改哪个地方
解决方案六:
你要理解后台SQL语句是怎么做的updatetablesetcolumnname=valuewhereid=ndataset里必须有主键和数据库对应,以便能够更新当前行的数据,而不是一下把数据库里所有数据都给更新掉这个跟你是否修改主键没有关系.
解决方案七:
引用5楼Z65443344的回复:
你要理解后台SQL语句是怎么做的updatetablesetcolumnname=valuewhereid=ndataset里必须有主键和数据库对应,以便能够更新当前行的数据,而不是一下把数据库里所有数据都给更新掉这个跟你是否修改主键没有关系.
我知道您说的要靠主键找到需要修改的的那一行我把全部的代码贴出来您能不能帮忙看一下到底应该在哪里做修改十分感谢这个问题困扰我好久了MySqlConnectionconn;DataSetds;MySqlDataAdaptersda;privatevoidForm4_Load(objectsender,EventArgse){conn=newMySqlConnection("DataSource=localhost;Database=first;UserId=root;PassWord=ccl");MySqlCommandcmd=newMySqlCommand("select*frompeople",conn);sda=newMySqlDataAdapter();sda.SelectCommand=cmd;ds=newDataSet();sda.Fill(ds,"cs");dataGridView1.DataSource=ds.Tables[0];}privatevoidbutton1_Click(objectsender,EventArgse){DataTabledt=ds.Tables["cs"];sda.FillSchema(dt,SchemaType.Mapped);DataRowdr=dt.Rows.Find(txtNo.Text);dr["name"]=txtName.Text.Trim();dr["dept"]=this.txtDept.Text.Trim();dr["age"]=this.txtAge.Text.Trim();dr["sex"]=this.txtSex.Text.Trim();MySqlCommandBuildercmdbuilder=newMySqlCommandBuilder(sda);sda.Update(dt);}privatevoiddataGridView1_CellClick(objectsender,DataGridViewCellEventArgse){txtNo.Text=dataGridView1.SelectedCells[0].Value.ToString();txtName.Text=dataGridView1.SelectedCells[1].Value.ToString();txtDept.Text=dataGridView1.SelectedCells[2].Value.ToString();txtAge.Text=dataGridView1.SelectedCells[3].Value.ToString();txtSex.Text=dataGridView1.SelectedCells[4].Value.ToString();}
解决方案八:
people表的主健字段是什么?把people表结构贴上来看看
解决方案九:
引用7楼gxingmin的回复:
people表的主健字段是什么?把people表结构贴上来看看
是这样的您看一下
解决方案十:
改成这样呢privatevoidbutton1_Click(objectsender,EventArgse){DataTabledt=ds.Tables["cs"];//sda.FillSchema(dt,SchemaType.Mapped);//DataRowdr=dt.Rows.Find(txtNo.Text);DataRow[]drs=dt.Select("id="+txtNo.Text);if(drs.Length>0){DataRowdr=drs[0];dr["name"]=txtName.Text.Trim();dr["dept"]=this.txtDept.Text.Trim();dr["age"]=this.txtAge.Text.Trim();dr["sex"]=this.txtSex.Text.Trim();MySqlCommandBuildercmdbuilder=newMySqlCommandBuilder(sda);sda.Update(dt);}}
解决方案十一:
引用9楼gxingmin的回复:
改成这样呢privatevoidbutton1_Click(objectsender,EventArgse){DataTabledt=ds.Tables["cs"];//sda.FillSchema(dt,SchemaType.Mapped);//DataRowdr=dt.Rows.Find(txtNo.Text);DataRow[]drs=dt.Select("id="+txtNo.Text);if(drs.Length>0){DataRowdr=drs[0];dr["name"]=txtName.Text.Trim();dr["dept"]=this.txtDept.Text.Trim();dr["age"]=this.txtAge.Text.Trim();dr["sex"]=this.txtSex.Text.Trim();MySqlCommandBuildercmdbuilder=newMySqlCommandBuilder(sda);sda.Update(dt);}}
我试了一下好像还是不行啊还是提示原来的问题这可怎么办
解决方案十二:
奇怪,你看看下面这个帖子对你有帮助不?
解决方案十三:
引用11楼gxingmin的回复:
奇怪,你看看下面这个帖子对你有帮助不?
抓狂了我看一下谢谢您的帮助
解决方案十四:
求帮助啊自己顶一下
解决方案十五:
再帮自己顶一下大家帮帮忙