[UserData
]と[HotelData
]という2つのテーブルがあります。それらを外部キーとリンクしました。これは "Username
"であり、これまでにUsernameが入力された場合は削除し、2番目のテーブルでもそのデータを削除したいとします。私はSQLコマンドやC#を書く方法を知らない。 REFERENCE制約 "FKHotelData" と競合DELETE文:他のテーブルの親行のデータを含む行を削除する方法
タイプの未処理の例外は、 'System.Data.SqlClient.SqlException' はのSystem.Data.dll
に追加情報を起こりました。競合はデータベース "E:¥GRADED UNIT DEV¥BLACKMARCH¥BLACKMARCH¥BIN¥DEBUG¥DATABASEBM.MDF"、 テーブル "dbo.HotelData"、列 'Username'で発生しました。
ステートメントが終了しました。
private void btnDelete_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=E:\Graded unit Dev\BlackMarch\BlackMarch\bin\Debug\DataBaseBM.mdf;Integrated Security=True;Connect Timeout=30");
string sqlStatement = "DELETE FROM UserData WHERE Username = @Username";
con.Open();
SqlCommand cmd = new SqlCommand(sqlStatement, con);
cmd.Parameters.AddWithValue("@Username", txtUsernameUser.Text);
cmd.CommandType = CommandType.Text;
cmd.ExecuteNonQuery();
con.Close();
}
が続き、その後UserDateからです。 –
メッセージは非常に説明的です。あなたがFKの制約を持っているので、あなたが最初にHotelDataから関連するエントリーを削除しない限り、UserDataからエントリーを削除することはできません – apomene
テーブル構造とモデルを表示できます – anand