数据库里有名为major的表major(major_id,major_name,depart_id),其中major_id为主键。
想实现选择修改的major数据行,弹出修改窗口,里面已填充好一行内容,其中depart_id为只读,可修改。
代码如下:
SqlConnection conn = new SqlConnection (connString);
string UpdSqlStr = "update major set " +
"major_name = '" + textBox2.Text + "'," +
"major_id = '" + textBox1.Text + "' where depart_id = '"
+ depart_id + "'";
SqlCommand cmd = new SqlCommand();
cmd.CommandText = UpdSqlStr;
conn.Open();
cmd.Connection = conn;
cmd.ExecuteNonQuery();
conn.Close();
this.DialogResult = DialogResult.OK;
this.Close();执行总是报错“违反了 PRIMARY KEY 约束 'PK_major'。不能在对象 'dbo.major' 中插入重复键”
大致知道哪里错,但就是不是很了解如何改动能够在规则内又不需要进行大的改动。
劳烦各位指正了!
想实现选择修改的major数据行,弹出修改窗口,里面已填充好一行内容,其中depart_id为只读,可修改。
代码如下:
SqlConnection conn = new SqlConnection (connString);
string UpdSqlStr = "update major set " +
"major_name = '" + textBox2.Text + "'," +
"major_id = '" + textBox1.Text + "' where depart_id = '"
+ depart_id + "'";
SqlCommand cmd = new SqlCommand();
cmd.CommandText = UpdSqlStr;
conn.Open();
cmd.Connection = conn;
cmd.ExecuteNonQuery();
conn.Close();
this.DialogResult = DialogResult.OK;
this.Close();执行总是报错“违反了 PRIMARY KEY 约束 'PK_major'。不能在对象 'dbo.major' 中插入重复键”
大致知道哪里错,但就是不是很了解如何改动能够在规则内又不需要进行大的改动。
劳烦各位指正了!
可以改变的最好不要作为主键。你可以另外增加一个字段做主键,
然后设置 major_id 为唯一索引。还有你的程序设计有问题,
怎么能根据 depart_id 去修改作为主键的major_id,
depart_id又不是唯一的,那肯定会导致major_id重复,你的设计感觉很乱