图片是以二进制流存入表my_img 的字段img中的
现在要把图片显示出来,得怎么做?

解决方案 »

  1.   

    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Data.SqlClient;public partial class readimage : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
             
              string connStr = ConfigurationManager.ConnectionStrings["DormConnectionString"].ConnectionString;
              SqlConnection dbconn = new SqlConnection(connStr);        
                     string strSql="select img from  test where id=205  ";
                     SqlCommand cmd = new SqlCommand();
                     cmd.Connection = dbconn;                 cmd.CommandType = CommandType.Text;
                      cmd.CommandText = strSql;
                     
                     SqlDataReader reader = cmd.ExecuteReader();
                     reader.Read();
                     Response.ContentType="application/octet-stream";
                     Response.BinaryWrite((Byte[])reader["img"]);
                     Response.End();
                     reader.Close();
              }
    }
    这样写那出错了?
      

  2.   

    异常详细信息: System.InvalidOperationException: ExecuteReader 要求已打开且可用的连接。连接的当前状态为已关闭。
      

  3.   

    Response.ContentType="application/octet-stream"; 
     Response.BinaryWrite((Byte[])reader["img"]); 
    这两句代码就可以了!
      

  4.   

    SqlConnection Con = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]);
            String SqlCmd = "SELECT * FROM ImageStore WHERE ID = @ImageID";
            SqlCommand CmdObj = new SqlCommand(SqlCmd, Con);
            CmdObj.Parameters.Add("@ImageID", SqlDbType.Int).Value = "";
            Con.Open();
            SqlDataReader SqlReader = CmdObj.ExecuteReader();
            SqlReader.Read();
            Response.ContentType = (string)SqlReader["ImageContentType"];//设定输出文件类型       
             Response.OutputStream.Write((byte[])SqlReader["ImageData"],0,Convert.ToInt32(SqlReader["ImageSize"]));
            Response.BufferOutput = true;
            Con.Close();