如果我要删除一个帖子,这个帖子里可能会有多条留言信息,留言信息中还包含不等图片,当我删除这个帖子后,我也想把
上传的服务器的图片也删除,我是采用的这样的方法:
1.查询出所有的留言信息总数
2.然后再由查询出来的回复留言总数,进行递归查询,并删除
这样我是达到了效果,但是我想,如果留言内容太多时,也有这样的方法来删除,递归的话,那不太不慢了吧。。
请问大家平常是怎么处理这样的问题的啊?
这个图片删除,困扰了我很长时间,总是找不到满意的解决办法,麻烦哪个帮忙请导一下

解决方案 »

  1.   

    上传时保存ID,图片路径到数据,根据ID批删除
      

  2.   

    不是很明白,怎么保存id,难道也是批量保存,每张上传图片id都要保存?
      

  3.   

    先添加留言 ,select @@idenitity
    再根据图片的路径添加到数据库
      

  4.   

    楼主的主贴和跟帖是分两个表吧!
    删除主贴时获得id,根据这个id删跟帖的数据,
    图片上传总有个文件名,根据文件名删除之!
      

  5.   

    我开始是这样做的,由删除帖子的id,找到帖子id下回复留言总数,然后用这个回复总数进行for循环,再删除图片 public bool GetPostBackContent(string postid)
            {            string sql = "select count(*) from Bbs_PostBack where PostBack_PostId=" + postid;//得到帖子id下回复信息总数
    // string sql = "select count(*) from Bbs_PostBack where PostBack_PostId";改成得到所有回复留言能正常删除
                int  postcount = ExecuteScalar(sql);            int i;
                try
                {
                    for (i = 0; i < postcount; i++)
                    {                    string strsql = "select PostBack_Id from Bbs_PostBack where PostBack_PostId=" + postid;//找到回复表中的回复id,PostBack_PostId是帖子id(外键)
                        string backid= ExecuteScalars(strsql);//执行方法                    if (backid!= "")
                        {
                            backid=(convert.toint32(backid)).tostring()  
                            strsql = "select PostBack_Content from Bbs_PostBack where PostBack_Id=" + backid;//查询回复帖子内容
                            string Contetimg= ExecuteScalars(strsql);//执行方法
                            if (contentimg!= "")
                            {
                                //执行删除服务器上的图片
                                delimg(contentimg);
                            }
                        }                }
                    return true;
                }
                catch { return false; }
            }得到帖子id下回复信息总数后,删除,如果是连续的回复消息,图片是可以删除了,如果不是连续的回复留言就不能删除图片,所以我改用了全部回复信息,再循环查询,删除
      

  6.   

    这样吧
    你可以把图片和留言回复 放在一张表中然后主表就是帖子信息子表 有一个帖子的ID  然后帖子内容(里面包含留言,图片信息)你删除某个帖子的时候 直接批量删除子表有关这个ID的所有信息!
      

  7.   

    有时的确会觉得图片放在一个数据表的image字段中会很方便!
    如果是这样的话,只要设置一下级联删除即可!
      

  8.   

    yes ,就是那个意思有点同意14楼的意见
      

  9.   

    LZ  这个分应该我多拿点 这个是匹配img的代码你把内容直接传进去匹配就OK了    /// <summary>
            /// 匹配src
            /// </summary>
            /// <param name="sHtmlText"></param>
            /// <returns></returns>
            public string[] GetHtmlImageUrlList(string sHtmlText)
            {
                // 定义正则表达式用来匹配 img 标签
                Regex regImg = new Regex(@"<img\b[^<>]*?\bsrc[\s\t\r\n]*=[\s\t\r\n]*[""']?[\s\t\r\n]*(?<imgUrl>[^\s\t\r\n""'<>]*)[^<>]*?/?[\s\t\r\n]*>", RegexOptions.IgnoreCase);            // 搜索匹配的字符串
                MatchCollection matches = regImg.Matches(sHtmlText);            int i = 0;
                string[] sUrlList = new string[matches.Count];            // 取得匹配项列表
                foreach (Match match in matches)
                    sUrlList[i++] = match.Groups["imgUrl"].Value;            return sUrlList;
            }