日期:2014-05-18  浏览次数:20507 次

关于删除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

临时表的内容可根据你的需求适当添加,希望对你有帮助!:)

我的问题帖子有人会吗?郁闷!