c# - 如何在 ASP.NET (C#) 中删除一条记录以及所有相关记录

标签 c# sql asp.net

我有这段代码可以从我的表中删除摄影师,但是 photographer_id 是我的表“图像”中的外键,当我删除摄影师时,我想删除“图像”表中的所有图像摄影师我正在删除。我怎么做?

...

else if (e.CommandName == "Slet")
{
    SqlConnection conn = new SqlConnection();
    conn.ConnectionString =
        ConfigurationManager.ConnectionStrings["DatabaseConnectionString1"].ToString();
    SqlCommand cmd = new SqlCommand();
    cmd.Connection = conn;

    cmd.CommandText = "DELETE FROM photographers WHERE photographer_id = @photographer_id";

    cmd.Parameters.Add("@photographer_id", SqlDbType.Int).Value = e.CommandArgument.ToString();

    conn.Open();
    cmd.ExecuteNonQuery();
    conn.Close();

    Repeater1.DataBind();
}

这是我的图像表:

CREATE TABLE [dbo].[images] (
    [image_id] INT  IDENTITY (1, 1) NOT NULL,
    [image] NVARCHAR (50) NOT NULL,
    [FK_photographer] INT NOT NULL,
    PRIMARY KEY CLUSTERED ([billede_id] ASC),
    CONSTRAINT [FK_fotograf] FOREIGN KEY ([FK_fotograf]) REFERENCES [dbo].[Fotografer] ([fotograf_id]),

);

这是我的 PHOTOGRAPHERS 表:

CREATE TABLE [dbo].[photographers] (
    [photographer_id] INT IDENTITY (1, 1) NOT NULL,
    [photographer_name] NVARCHAR (50) NOT NULL,
    PRIMARY KEY CLUSTERED ([photographer_id] ASC)
);

最佳答案

设置cascading delete在你的外键约束上。这将在您删除 Photographer` 时自动删除图像

无需自己重新发明轮子。

关于c# - 如何在 ASP.NET (C#) 中删除一条记录以及所有相关记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26234830/

相关文章:

c# - 如何在 LinkBut​​ton 单击事件上启动电子邮件客户端?

c# - 如何在循环中调用正在运行的 Ranorex 测试?

c# - 需要有关从 C# 中的 Directory.GetFiles 方法中过滤掉某些文件名的好方法的建议

java - 如何让 Statement.getGenerateKeys 工作

asp.net - ASP MVC - 捆绑创建目录路径而不是文件路径

c# - 如何使用 Entity Framework 构建具有 "Core"数据库和各个派生数据库的 ASP.NET MVC 应用程序?

c# - Application Insights 异常和故障

c# - 回发后如何保持 DropDownList1 的选定值?

sql - 使用标识列来确定行创建的顺序是一个不好的做法吗?

sql - 在 BigQuery 中创建具有重复嵌套列的表语句