gpt4 book ai didi

c# - 如何删除具有相同相册 ID 的所有图像文件?

转载 作者:行者123 更新时间:2023-11-30 17:36:24 25 4
gpt4 key购买 nike

我有两个表,一个包含所有图片(称为 billeder,丹麦语),具有外键(在我的代码中称为“相册”)告诉女巫它属于哪个专辑,然后我有一个专辑,带有主键(alb_id)。所以我可以评估特定相册中的图片。

我知道如何删除表格和服务器文件夹中的图片。这很好用。

但我需要知道如何一次删除文件夹中的所有图片。

到目前为止我有这个:

  SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["connectionstring"].ToString());

SqlCommand cmd = new SqlCommand();

cmd.Connection = conn;


cmd.CommandText = "DELETE FROM albums WHERE alb_id = @id";
cmd.Parameters.AddWithValue("@id", id);

conn.Open(); // Open the connection
cmd.ExecuteNonQuery();
conn.Close();

cmd.CommandText = "DELETE FROM billeder WHERE album = @id";
cmd.Parameters.AddWithValue("@id", id);

conn.Open(); // Open the connection
cmd.ExecuteNonQuery();
conn.Close();

删除文件的代码:

   File.Delete(Server.MapPath("../fotos/" + image));

最佳答案

鉴于您在 billeder 表中有图像路径,您可以在从表中删除行之前查询它们:

cmd.CommandText = "select imagePath FROM billeder WHERE album = @id";
var result = cmd.ExecuteQuery();

然后遍历结果集,依次删除每张图片:

foreach (var image in result) // assuming the result set is a list of strings
{
File.Delete(Server.MapPath("../fotos/" + image));
}

更好的解决方案是将图像放入每个相册的文件夹中(使用相册 ID 或更好的 GUID 作为文件夹的名称,然后您可以通过一次调用删除文件夹。

关于c# - 如何删除具有相同相册 ID 的所有图像文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39648880/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com