asp.net中如何提取sqlserver中得图片(不是图片地址)?并显示到页面

解决方案 »

  1.   

    using System;
    using System.Data;
    using System.Data.SqlClient;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    namespace ReadImage {
    public class MainDisplay : System.Web.UI.Page {
    public void Page_Load(System.Object sender, System.EventArgs e) {
        int ImgID = Convert.ToInt32(Request.QueryString["ImgID"]);  //ImgID为图片ID 
        //建立链接
        SqlConnection Con = new SqlConnection("Data Source=KING;Initial Catalog=testdb;User ID=sa;Pwd=;");
        String SqlCmd = "SELECT * FROM ImageStore WHERE ImageID = @ImageID";
        SqlCommand CmdObj = new SqlCommand(SqlCmd, Con);
        CmdObj.Parameters.Add("@ImageID", SqlDbType.Int).Value = ImgID;
        Con.Open();
        SqlDataReader SqlReader = CmdObj.ExecuteReader();
        SqlReader.Read();     
        Response.ContentType = (string)SqlReader["ImageContentType"];//设定输出文件类型
        //输出图象文件二进制数制
        Response.OutputStream.Write((byte[])SqlReader["ImageData"], 0, (int)SqlReader["ImageSize"]);     
        Response.End();
        Con.Close();
      

  2.   

    // 创建一个新的getimage.aspx    
    code :try
    {
    sqlcon.Open();
    sqldr=sqlcmd.ExecuteReader();
    if(sqldr.Read())
    {
    Response.Clear();
    //Response.ContentType=(string)sqldr["ImageContentType"];//设定输出文件类型 
    //输出图象文件二进制数制
    byte[] imagecontent=(byte[])sqldr[0];
    //Response.BinaryWrite((byte[])sqldr["Imageinf"]);
    Response.BinaryWrite(imagecontent);
    }
    sqldr.Close();
    sqlcon.Close();
    }
    catch(Exception ee)
    {
    Response.Write(ee.Message.ToString());
    }
    Response.End();