【发布时间】:2016-05-26 10:59:08
【问题描述】:
有两个表 [UserData] 和 [HotelData] 我用外键链接了它们。这是“Username”,我想删除输入的用户名并删除第二个表中的数据。我不知道怎么写sql命令或c#。
“System.Data.SqlClient.SqlException”类型的未处理异常 发生在 System.Data.dll
附加信息:DELETE 语句与 REFERENCE 约束“FKHotelData”。数据库发生冲突 "E:\GRADED UNIT DEV\BLACKMARCH\BLACKMARCH\BIN\DEBUG\DATABASEBM.MDF", 表“dbo.HotelData”,列“用户名”。
语句已终止。
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();
}
【问题讨论】:
-
先从 HotelData 中删除,然后从 UserDate 中删除。
-
该消息非常具有解释性。由于您有 FK 约束,因此您无法从 UserData 中删除条目,除非您首先从 HotelData 中删除相关条目
-
你能展示一下你的表结构和模型吗
-
要么依次删除“子”行,然后是“父行”,或者启用级联删除
-
嗨。如果您认为某个答案解决了问题,请通过单击答案旁边的灰色复选标记将其标记为“已接受”。检查此链接以了解接受答案的工作原理:meta.stackexchange.com/questions/5234/…
标签: c# sql sql-server