我有2张桌子
t1 - 分类 ID 名称
t2 - 产品 ID 名称 类别ID
我有一个外键并且它正在工作,但是当我想运行一个删除查询时(例如,由于外键,O不断收到错误。)
这是我的代码: protected void dlCategory_DeleteCommand(object source, DataListCommandEventArgs e)
{
string Id = ((Label)e.Item.FindControl("Label1")).Text;
string SQL = "DELETE FROM Categories WHERE PrimaryKey=@ID;";
SqlCommand cmd = new SqlCommand(SQL, conn);
cmd.Parameters.AddWithValue("@ID", Id);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
BindDL();
}
如果我删除了外键,它工作正常!
答案 0 :(得分:0)
据我所知,你不能以主键作为参数运行查询,你需要做长期的工作。
string SQL = "DELETE FROM Categories WHERE PrimaryKey= '$Cat_ID';";
答案 1 :(得分:0)
看起来您正在尝试从类别中删除记录,但该记录无法删除,因为Products表正在使用该记录。
如果你有一类衣服'和“T恤”的产品给出衣服类别,然后删除类别会给你一个数据错误,因为数据库现在不一致。
这是预期的功能。您可以修改SQL Server以使用级联删除,因此所有连接的记录也会被删除,但请谨慎使用。