我正在尝试从数据库中检索图像&将它显示给gridview.But它显示.ashx文件中的错误
SqlCommand command = new SqlCommand(
"select Image from ImageStore where ImageID=" + imageid, connection);
SqlDataReader dr = command.ExecuteReader(); dr.Read();
context.Response.BinaryWrite((Byte[])dr[0]);
'='
附近的语法不正确
如何解决
答案 0 :(得分:1)
由于您尚未发布代码,我假设您使用.aspx文件并且您已经渲染了gridview控件。确保使用
添加了图像控制 <asp:Image ID="imgPhoto" runat="server"
ImageUrl =
'<%#"ImageHttpHandler.ashx?ProductID="+Eval("ProductID")%>'/>
HTTP处理程序可以访问应用程序上下文。这包括请求用户的身份(如果已知),应用程序状态和会话信息。当请求HTTP处理程序时,ASP.NET会调用相应处理程序的ProcessRequest方法。您在处理程序的ProcessRequest方法中编写的代码会创建一个响应,并将其发送回请求的浏览器。
在获取图像的方法中使用return stmt
return (Byte[])dtProductsPhoto.Rows[0][0];
确保已使用
在Web.config文件中注册了处理程序 <httpHandlers>
<add verb="*" path="*ImageHttpHandler.ashx"
type="GridView.ImageHttpHandler,GridView" />
希望它有效......
答案 1 :(得分:0)
做这样的事情:
if(imageid != null)
{
SqlCommand command = new SqlCommand("
select Image from ImageStore where ImageID=" + imageid, connection);
SqlDataReader dr = command.ExecuteReader();
dr.Read();
context.Response.BinaryWrite((Byte[])dr[0]);
}
else
{
SqlCommand command = new SqlCommand("
select Image from ImageStore where ImageID=0", connection);
SqlDataReader dr = command.ExecuteReader();
dr.Read();
context.Response.BinaryWrite((Byte[])dr[0]);
}