如果我要删除一个帖子,这个帖子里可能会有多条留言信息,留言信息中还包含不等图片,当我删除这个帖子后,我也想把
上传的服务器的图片也删除,我是采用的这样的方法:
1.查询出所有的留言信息总数
2.然后再由查询出来的回复留言总数,进行递归查询,并删除
这样我是达到了效果,但是我想,如果留言内容太多时,也有这样的方法来删除,递归的话,那不太不慢了吧。。
请问大家平常是怎么处理这样的问题的啊?
这个图片删除,困扰了我很长时间,总是找不到满意的解决办法,麻烦哪个帮忙请导一下
上传的服务器的图片也删除,我是采用的这样的方法:
1.查询出所有的留言信息总数
2.然后再由查询出来的回复留言总数,进行递归查询,并删除
这样我是达到了效果,但是我想,如果留言内容太多时,也有这样的方法来删除,递归的话,那不太不慢了吧。。
请问大家平常是怎么处理这样的问题的啊?
这个图片删除,困扰了我很长时间,总是找不到满意的解决办法,麻烦哪个帮忙请导一下
再根据图片的路径添加到数据库
删除主贴时获得id,根据这个id删跟帖的数据,
图片上传总有个文件名,根据文件名删除之!
{ 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下回复信息总数后,删除,如果是连续的回复消息,图片是可以删除了,如果不是连续的回复留言就不能删除图片,所以我改用了全部回复信息,再循环查询,删除
你可以把图片和留言回复 放在一张表中然后主表就是帖子信息子表 有一个帖子的ID 然后帖子内容(里面包含留言,图片信息)你删除某个帖子的时候 直接批量删除子表有关这个ID的所有信息!
如果是这样的话,只要设置一下级联删除即可!
/// 匹配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;
}