我试图删除表格NatureCharge中引用Famille表主键的外键,因为我需要在Famille中删除多行
要删除多行,它可以工作,但是在NatureCharge中删除行的问题
表格看起来像那样
守则:
first:int -> second:int -> int
错误显示为line(用于Famille部分)
cmd.ExecuteNonQuery();
附加信息:DELETE语句与REFERENCE约束“FK_NatureCharge_Famille”冲突。冲突发生在数据库“Tresorerie”,表“dbo.NatureCharge”,列'IdFam'。
答案 0 :(得分:2)
您忘记在此处添加@IdNat
参数:
using (SqlCommand command = new SqlCommand("DELETE NatureCharge FROM NatureCharge n INNER JOIN Famille f on n.IdFam = f.IdFam WHERE IdNat = @IdNat", con))
{
// you haven't added the @IdNat parameter
command.ExecuteNonQuery();
}
如果您整理代码,这将更加明显。
string sql = "DELETE NatureCharge
FROM NatureCharge n
INNER JOIN Famille f on n.IdFam = f.IdFam
WHERE IdNat = @IdNat";
^^^^^^
using (SqlCommand command = new SqlCommand(sql, con))
{
// you haven't added the @IdNat parameter
command.ExecuteNonQuery();
}