保存在数据中image字段的图片文件显示出来

Posted on 2010-04-08 20:27  严武  阅读(295)  评论(0编辑  收藏  举报

把图像文件上传到数据库,并从数据库读出    
  采用参数    
  上传图片到数据库:  
   
  using   System;  
  using   System.Collections;  
  using   System.ComponentModel;  
  using   System.Data;  
  using   System.Data.SqlClient;  
  using   System.Drawing;  
  using   System.Web;  
  using   System.Web.SessionState;  
  using   System.Web.UI;  
  using   System.Web.UI.WebControls;  
  using   System.Web.UI.HtmlControls;  
  using   System.IO;  
   
  namespace   myUpLoad  
  {  
  ///   <summary>  
  ///   img2sql   的摘要说明。  
  ///   </summary>  
  public   class   img2sql   :   System.Web.UI.Page  
  {  
  protected   System.Web.UI.WebControls.TextBox   imgTitleTextBox;  
  protected   System.Web.UI.HtmlControls.HtmlInputFile   upLoadImg;  
  protected   System.Web.UI.WebControls.RequiredFieldValidator   RequiredFieldValidator1;  
  protected   System.Web.UI.WebControls.Button   Button1;  
  protected   SqlConnection   myConnection;  
   
  private   void   Page_Load(object   sender,   System.EventArgs   e)  
  {  
  //   在此处放置用户代码以初始化页面  
  string   conn="server=(local);database=test;uid=sa;pwd=ilovenm";  
  myConnection=new   SqlConnection(conn);  
  }  
   
  #region   Web   Form   Designer   generated   code  
  override   protected   void   OnInit(EventArgs   e)  
  {  
  //  
  //   CODEGEN:该调用是   ASP.NET   Web   窗体设计器所必需的。  
  //  
  InitializeComponent();  
  base.OnInit(e);  
  }  
   
  ///   <summary>  
  ///   设计器支持所需的方法   -   不要使用代码编辑器修改  
  ///   此方法的内容。  
  ///   </summary>  
  private   void   InitializeComponent()  
  {          
  this.Button1.Click   +=   new   System.EventHandler(this.Button1_Click);  
  this.Load   +=   new   System.EventHandler(this.Page_Load);  
   
  }  
  #endregion  
   
  private   void   Button1_Click(object   sender,   System.EventArgs   e)  
  {  
  Stream   myStream=upLoadImg.PostedFile.InputStream;  
  int   imgDataLen=upLoadImg.PostedFile.ContentLength;  
  string   imgType=upLoadImg.PostedFile.ContentType;  
  string   imgTitle=imgTitleTextBox.Text;  
  byte[]   imgData=new   byte[imgDataLen];  
  int   n=myStream.Read(imgData,0,imgDataLen);  
   
  //string   conn="server=(local);database=test;uid=sa;pwd=ilovenm";  
  //SqlConnection   myConnection=new   SqlConnection(conn);  
   
  SqlCommand   myCommand   =   new   SqlCommand("INSERT   INTO   image   (imgtitle,imgtype,imgdata)   valueS   (   @imgtitle,   @imgtype,   @imgdata   )",   myConnection);  
   
  myCommand.Parameters.Add(new   SqlParameter("@imgtitle",SqlDbType.VarChar,50));  
  myCommand.Parameters["@imgtitle"].value=imgTitle;  
   
  myCommand.Parameters.Add(new   SqlParameter("@imgtype",SqlDbType.VarChar,50));  
  myCommand.Parameters["@imgtype"].value=imgType;  
   
  myCommand.Parameters.Add(new   SqlParameter("@imgdata",SqlDbType.Image));  
  myCommand.Parameters["@imgdata"].value=imgData;  
   
  myConnection.Open();  
  int   numRowsAffected=myCommand.ExecuteNonQuery();  
  myConnection.Close();  
  }  
  }  
  }  
   
  显示:  
  using   System;  
  using   System.Collections;  
  using   System.ComponentModel;  
  using   System.Data;  
  using   System.Data.SqlClient;  
  using   System.Drawing;  
  using   System.Web;  
  using   System.Web.SessionState;  
  using   System.Web.UI;  
  using   System.Web.UI.WebControls;  
  using   System.Web.UI.HtmlControls;  
   
  namespace   myUpLoad  
  {  
  ///   <summary>  
  ///   showimg   的摘要说明。  
  ///   </summary>  
  public   class   showimg   :   System.Web.UI.Page  
  {  
  protected   SqlConnection   myConnection;  
   
  private   void   Page_Load(object   sender,   System.EventArgs   e)  
  {  
  //   在此处放置用户代码以初始化页面  
  string   imgID=Request.QueryString["imgid"];  
  string   conn="server=(local);database=test;uid=sa;pwd=ilovenm";  
  //string   conn="server=(local);database=test;uid=sa;pwd=ilovenm";  
                          myConnection=new   SqlConnection(conn);  
   
  string   selectCmd="select   imgdata,imgtype   from   image   where   id="+imgID;  
  SqlCommand   myCommand=new   SqlCommand(selectCmd,myConnection);  
  myConnection.Open();  
  SqlDataReader   myDataReader=myCommand.ExecuteReader();  
   
  if   (myDataReader.Read())  
  {  
  Response.ContentType=myDataReader["imgtype"].ToString();  
  Response.BinaryWrite((byte[])myDataReader["imgdata"]);  
  }  
  }  

Copyright © 2024 严武
Powered by .NET 8.0 on Kubernetes