写程序遇到 这句报错的意思就是 你主外键表数据操作错误了 DELETE 语句与 REFERENCE 约束"FK_tablename_tablename
解决方法很简单,
看到qId的钥匙有两个色了没有,一个金色是主键的颜色。另外一个是外键的颜色。
可以先在程序里写先删除主键表的某个值,再删除外键表的某个值, 这样就不会报错了。这是思路。
下面是c#实现的代码
DialogResult result = MessageBox.Show("确定删除题号 " + textBox1.Text + " 题库号 " + textBox2.Text + " 的内容?", "标题", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
string commandStr = "delete from Question where qId=@qId and qBId=@qBId";
//删除外键的值
string ThiscommandStr = "delete from answerQuestions where qId=@qId and qBId=@qBId";
//删除主键的值
if (result == DialogResult.OK)
{
using (SqlConnection CON = new SqlConnection(sqlLink.sqlcon()))
{
CON.Open();
using (SqlCommand CMD = new SqlCommand(commandStr, CON))
{
SqlCommand ThisCMD = new SqlCommand(ThiscommandStr,CON);
CMD.Parameters.AddWithValue("@qId", textBox1.Text);
CMD.Parameters.AddWithValue("@qBId", textBox2.Text);
ThisCMD.Parameters.AddWithValue("@qId", textBox1.Text);
ThisCMD.Parameters.AddWithValue("@qBId", textBox2.Text);
ThisCMD.ExecuteNonQuery();//先执行 删除主键的值的任务
ThisCMD.Dispose();//释放资源
CMD.ExecuteNonQuery();// 再执行删除外键的值的任务
CMD.Dispose();//释放资源
button2_Click(sender, e);
}
CON.Close();
}
}
本文介绍了一种解决主键和外键表数据操作时出现的DELETE语句与REFERENCE约束冲突的方法,通过先删除主键表值再删除外键表值的顺序,避免报错。并提供了C#代码示例。

2643

被折叠的 条评论
为什么被折叠?



