关于删除gridview数据的同时删除相关图片。分数不多了。帮帮我吧。
一个gridview,datasource是两个关联的表。一个表是专门保存图片的路径【ImgUrl】,一个表是专门保存产品信息【Product】,一个删除的linkbutton
1. 前台我用一个隐藏的label1来绑定【表ImgUrl】的字段(ImgPath),还有一个隐藏label2绑定【表ImgUrl】的(PicID), 后台我要在什么事件中和如何获得这两个label的值?
2.我要删除girdview数据的同时删除掉这个图片,并删除【表ImgUrl】中的记录,这段代码我要写在什么事件中?
System.IO.File.Delete(Server.MapPath(ImgPath))
Call AddPic.DeletePic(PicID)
------解决方案--------------------在删除事件里
Label lb =(Label)gridview1.Rows[e.RowIndex].FindControl( "你的label的id ");
String Path = lb.Text;
------解决方案--------------------你不是说,ImgPath不止一条记录么?
如果可能(这个不用于显示,只用于记录!)
只是想删除图片的话,其实可以把所有图片地址,一起记录到Label中,(之间用特殊符号间隔..)
之后,获取内容之后,再分隔出来删除不就行了么?
------解决方案--------------------你可以写一个存储过程,用于连接这些图片路径。
将这些路径用分隔符(如:逗号)隔开,作为一个字段,查询出来就可以了。
Create table #Product_ImgUrl(Product varchar(50), ImgUrl_List varchar(8000)) --创建临时表用于存储结果
Declare @Product varchar(50),--产品编号
@ImgUrl varchar(200),--图片路径
@ImgUrl_List varchar(8000)--图片路径字符串列表
DECLARE Product_cursor CURSOR FOR --循环产品
SELECT Product
FROM 产品表
OPEN Product_cursor
FETCH NEXT FROM Product_cursor
INTO @Product
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE ImgUrl_cursor CURSOR FOR --循环产品对应的图片
SELECT ImgUrl
FROM 图片表
WHERE Product = @Product
OPEN ImgUrl_cursor
FETCH NEXT FROM ImgUrl_cursor INTO @ImgUrl
WHILE @@FETCH_STATUS = 0
BEGIN
SET @ImgUrl_List = @ImgUrl_List + @ImgUrl + ', '
END
CLOSE ImgUrl_cursor
DEALLOCATE ImgUrl_cursor
insert into #Product_ImgUrl values(@Product,@ImgUrl_List) --插入到临时表中
SEt @ImgUrl_List = ' ' --别忘了清空列表备用
FETCH NEXT FROM Product_cursor
INTO @Product
END
CLOSE Product_cursor
DEALLOCATE Product_cursor
select * from #Product_ImgUrl --结果出来了
GO
临时表的内容可根据你的需求适当添加,希望对你有帮助!:)
我的问题帖子有人会吗?郁闷!