我試圖刪除表NatureCharge外鍵引用了粉彩的表的主鍵,因爲我需要在彩刪除外鍵
刪除多行刪除多行,它的工作原理,但與問題刪除行中NatureCharge 中的表看起來像
的代碼:與線
private void DeleteFamBtn_Click(object sender, EventArgs e)
{
List<DataGridViewRow> selectedRows = (from row in DataGridViewFamille.Rows.Cast<DataGridViewRow>()
where Convert.ToBoolean(row.Cells["checkBoxColumn"].Value) == true
select row).ToList();
if (MessageBox.Show(string.Format("Do you want to delete {0} rows?", selectedRows.Count), "Confirmation", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
//delete Nature de Charge before delete Famille
foreach (DataGridViewRow row in selectedRows)
{
try
{
using (SqlConnection con = new SqlConnection(connstring))
{
con.Open();
using (SqlCommand command = new SqlCommand("DELETE NatureCharge FROM NatureCharge n INNER JOIN Famille f on n.IdFam = f.IdFam WHERE IdNat = @IdNat", con))
{
command.ExecuteNonQuery();
}
con.Close();
}
}
catch (SystemException ex)
{
MessageBox.Show(string.Format("An error occurred: {0}", ex.Message));
}
}
//Delete Famille
foreach (DataGridViewRow row in selectedRows)
{
using (SqlConnection con = new SqlConnection(connstring))
{
using (SqlCommand cmd = new SqlCommand("DELETE FROM Famille WHERE IdFam = @IdFam", con))
{
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@IdFam", row.Cells["IdFam"].Value);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
}
}
一個錯誤顯示(這是彩部分)
cmd.ExecuteNonQuery();
附加信息:DELETE語句與參考約束「FK_NatureCharge_Famille」衝突。衝突發生在數據庫「Tresorerie」,表「dbo.NatureCharge」,列'IdFam'。
不要編輯你的問題,並無效已經給出的答案! –
對不起,這是以前的錯誤,所以我修改了,但忘了補充新的錯誤,再次抱歉 – Amin
還聲明哪個刪除語句不正確。 – MethodMan