大家好,最近在用asp.net学习做网站,配合使用的数据库是sql server 2005
现有一数据库DB中数据表menu有4列,其中一列(列名为pic)为image型,并且已成功插入图片
现用asp.net中一Gridview控件配置好数据表menu中的数据显示
可运行后image型的pic列不能正常显示图片,都显示System.Byte[]
搜索了一下知道是将图片二进制再反转换的问题,可是具体如何解决还来请教各位大侠!
是应该在xxx.aspx,或xxx.aspx.cs文件中写入何种代码,具体代码根据我的数据表名、列名怎么写(我用的是C#脚本);
还是用什么别的办法解决,求具体步骤。一定要使用Gridview控件
望指导,不胜感激~~~

解决方案 »

  1.   

    用一个页面用来显示图片.gridview使用模板列,放个<img 指向那个页面,如:
    <img src='showimage.aspx?id=<%#Eval("id")%>' >
    showimage.aspx中,根据id查询数据库,显示图片.
      

  2.   


    谢谢高人,那这段代码写在哪里?web。config里?
      

  3.   


    写在页面里面 ,然后绑定你的gridview
      

  4.   

    <img src='showimage.aspx?id=<%#Eval("id")%>' >这个是gridview里面的 传图片的ID到'showimage.aspx页面 在'showimage.aspx页面获取传过来的ID查询图片进行显示  
      

  5.   


    谢谢,但具体操作还不是太懂,我是新手……是说我要创建一个新的页面叫showimage.aspx,
    然后在有gridview空间的原来界面的.aspx文件中写入
    <img src='showimage.aspx?id=<%#Eval("id")%>' >对么?
    然后那个获取传过来的ID查询图片进行显示具体又怎么操作的,感谢进一步指点!
      

  6.   


    根据ID号传到该项页面.可以从数据库中找到该ID对应图片的二进制,将二进制转换成img图片,直接输出...
    我刚才说的[验证码]你做过没有?去网上找找
      

  7.   

    如何传数据库中Image型的图片ID,又如何在所需的另一个页面的Gridview控件中接收ID,正常显示图片呢?
      

  8.   

    img.aspx:byte[] buf=....
    System.IO.MemoryStream ms = new System.IO.MemoryStream(buf);
    this.Response.ContentType = "image/Jpeg";
    ms.Close();
    ================================================
    <img src='img.aspx?id=<%#Eval("id")%>' >
      

  9.   

    在gridview中通过image连接页面输出图片
    <IMG src="a.aspx?id=1" align="absmiddle">  
    int Id=int.Parse(Request.QueryString["id"]);  
    using(SqlConnection conn=new SqlConnection())  
    {  
    conn.ConnectionString="";  
        
    string strSql="select * from Tb where Id='"+Id+"'";  
    SqlCommand cmd=new SqlCommand(strSql,conn) ;  
    conn.Open();  
    SqlDataReader reader=cmd.ExecuteReader();  
        
    if(reader.Read())  
    {  
    Response.ContentType = "application/octet-stream";  
    Response.BinaryWrite((Byte[])reader["Photo"]);  
    }  
    Response.End();  
    conn.Close();  
    }

    Response.ContentType = "";
      Response.OutputStream.Write((byte[])SqlReader["ImageData"], 0, (int)SqlReader["ImageSize"]);   
      Response.End();