违反并发性: UpdateCommand 影响了预期 1 条记录中的 0 条。 本帖最后由 lihelihe199019901990 于 2014-09-17 09:38:15 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 好像是啊 我MySql数据库里设置的主键是 id 但我想让id不可修改 您看我这个应该怎么修改呢 改不改id,你自己代码可以控制dataset里必须有主健字段 你要理解后台SQL语句是怎么做的update table set columnname=value where id=ndataset里必须有主键和数据库对应,以便能够更新当前行的数据,而不是一下把数据库里所有数据都给更新掉这个跟你是否修改主键没有关系. 我知道您说的 要靠主键找到需要修改的的那一行 我把全部的代码贴出来 您能不能帮忙看一下 到底应该在哪里做修改 十分感谢 这个问题困扰我好久了MySqlConnection conn; DataSet ds; MySqlDataAdapter sda; private void Form4_Load(object sender, EventArgs e) { conn = new MySqlConnection("Data Source=localhost;Database = first;User Id=root;PassWord=ccl"); MySqlCommand cmd = new MySqlCommand("select * from people",conn); sda = new MySqlDataAdapter(); sda.SelectCommand = cmd; ds = new DataSet(); sda.Fill(ds,"cs"); dataGridView1.DataSource = ds.Tables[0]; } private void button1_Click(object sender, EventArgs e) { DataTable dt = ds.Tables["cs"]; sda.FillSchema(dt,SchemaType.Mapped); DataRow dr = 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(); MySqlCommandBuilder cmdbuilder = new MySqlCommandBuilder(sda); sda.Update(dt); } private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) { 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表结构贴上来看看 改成这样呢 private void button1_Click(object sender, EventArgs e) { DataTable dt = ds.Tables["cs"]; //sda.FillSchema(dt,SchemaType.Mapped); //DataRow dr = dt.Rows.Find(txtNo.Text); DataRow []drs = dt.Select("id=" + txtNo.Text); if(drs.Length>0) { DataRow dr = 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(); MySqlCommandBuilder cmdbuilder = new MySqlCommandBuilder(sda); sda.Update(dt); } } 奇怪,你看看下面这个帖子对你有帮助不?http://www.cnblogs.com/jinyuttt/archive/2010/07/28/1787111.html SQLite 怎样查询两个时间段内的数据? ListBox.DrawItem相关的一个问题 sql如何得到如下语句? 急:字符串中的 空格、反括号 怎么处理???????? 请问资源文件怎么使用?(提示需要正确嵌入到程序集) 求一个正则表达式,请高手来帮帮忙阿,非常感谢 僻怪题,谁能给出正确答案?(关于ocx) 我是一名初学者,请高手解答如何才能快速学会? 关于TextBox控件的有效性验证的问题? console.writeline($"{}{}"); 获取字符串描述符 如何让TrackBar控件显示俩个滑块?
好像是啊 我MySql数据库里设置的主键是 id 但我想让id不可修改 您看我这个应该怎么修改呢
dataset里必须有主健字段
update table set columnname=value where id=n
dataset里必须有主键和数据库对应,以便能够更新当前行的数据,而不是一下把数据库里所有数据都给更新掉
这个跟你是否修改主键没有关系.
我知道您说的 要靠主键找到需要修改的的那一行 我把全部的代码贴出来 您能不能帮忙看一下 到底应该在哪里做修改 十分感谢 这个问题困扰我好久了MySqlConnection conn;
DataSet ds;
MySqlDataAdapter sda; private void Form4_Load(object sender, EventArgs e)
{
conn = new MySqlConnection("Data Source=localhost;Database = first;User Id=root;PassWord=ccl");
MySqlCommand cmd = new MySqlCommand("select * from people",conn);
sda = new MySqlDataAdapter();
sda.SelectCommand = cmd;
ds = new DataSet();
sda.Fill(ds,"cs");
dataGridView1.DataSource = ds.Tables[0];
} private void button1_Click(object sender, EventArgs e)
{
DataTable dt = ds.Tables["cs"];
sda.FillSchema(dt,SchemaType.Mapped);
DataRow dr = 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();
MySqlCommandBuilder cmdbuilder = new MySqlCommandBuilder(sda);
sda.Update(dt);
} private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
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表结构贴上来看看
private void button1_Click(object sender, EventArgs e)
{
DataTable dt = ds.Tables["cs"];
//sda.FillSchema(dt,SchemaType.Mapped);
//DataRow dr = dt.Rows.Find(txtNo.Text);
DataRow []drs = dt.Select("id=" + txtNo.Text);
if(drs.Length>0)
{
DataRow dr = 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();
MySqlCommandBuilder cmdbuilder = new MySqlCommandBuilder(sda);
sda.Update(dt);
} }
http://www.cnblogs.com/jinyuttt/archive/2010/07/28/1787111.html