我有这段代码可以从我的表中删除摄影师,但是 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/