1using System;
  2using System.Collections;
  3using System.ComponentModel;
  4using System.Data;
  5using System.Drawing;
  6using System.Web;
  7using System.Web.SessionState;
  8using System.Web.UI;
  9using System.Web.UI.WebControls;
 10using System.Web.UI.HtmlControls;
 11using System.Data.SqlClient;
 12using System.IO;
 13
 14namespace MyTest

 15
{

 16    /**//**//**//// <summary>

 17    /**//// WebForm1 的摘要说明。

 18    /**//// </summary>
 19    public class WebForm1 : System.Web.UI.Page

 20    
{
 21        protected System.Web.UI.WebControls.TextBox TextBox1;
 22        protected System.Web.UI.WebControls.Button SubmitButton;
 23        protected System.Web.UI.HtmlControls.HtmlInputFile UP_FILE;
 24        protected System.Web.UI.WebControls.Button butDisplay;
 25        protected System.Web.UI.WebControls.TextBox txtPicID;
 26        protected System.Web.UI.WebControls.Label lblMessage;
 27        string ConnStr = "server=localhost;uid=sa;pwd=;database=MyTest";
 28    
 29    
 30        private void Page_Load(object sender, System.EventArgs e)

 31        
{
 32            
 33        }
 34

 35        Web 窗体设计器生成的代码Web 窗体设计器生成的代码#region Web 窗体设计器生成的代码
 36        override protected void OnInit(EventArgs e)

 37        
{
 38            //
 39            // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
 40            //
 41            InitializeComponent();
 42            base.OnInit(e);
 43        }
 44        

 45        /**//**//**//// <summary>

 46        /**//// 设计器支持所需的方法 - 不要使用代码编辑器修改

 47        /**//// 此方法的内容。

 48        /**//// </summary>
 49        private void InitializeComponent()

 50        
{    
 51            this.SubmitButton.Click += new System.EventHandler(this.SubmitButton_Click);
 52            this.butDisplay.Click += new System.EventHandler(this.butDisplay_Click);
 53            this.Load += new System.EventHandler(this.Page_Load);
 54
 55        }
 56        #endregion
 57
 58        //存入数据库
 59        private void SubmitButton_Click(object sender, System.EventArgs e)

 60        
{
 61            //HttpPostedFile对象,用于读取图像文件属性
 62            HttpPostedFile UpFile = UP_FILE.PostedFile;
 63            //FileLength变量存储图片的字节大小
 64            int FileLength = UpFile.ContentLength;
 65
 66            try

 67            
{
 68                if(FileLength == 0)

 69                
{
 70                    this.lblMessage.Text = "您未选择上传的文件";
 71                }
 72                else

 73                
{
 74                    //创建存储图片文件的临时Byte数组
 75                    byte[] FileByleArray = new byte[FileLength];
 76                    //建立数据流对象
 77                    Stream streamObject = UpFile.InputStream;
 78                    //读取图像文件数据
 79                    //FileByleArray为数据储存体,0为数据指针位置、FileLength为数据长度
 80                    streamObject.Read(FileByleArray,0,FileLength);
 81                    //数据库操作                    
 82                    string query = "INSERT INTO Picture(PicData,PicType,PicDescription,PicSize) VALUES (@PicData,@PicType,@PicDescription,@PicSize)";
 83                    SqlCommand com = new SqlCommand(query,new SqlConnection(ConnStr));
 84
 85                    //添加各项参数并赋值
 86                    com.Parameters.Add("@PicData",SqlDbType.Image);
 87                    com.Parameters.Add("@PicType",SqlDbType.VarChar,50);
 88                    com.Parameters.Add("@PicDescription",SqlDbType.VarChar,200);
 89                    com.Parameters.Add("@PicSize",SqlDbType.BigInt);
 90                    com.Parameters["@PicData"].Value = FileByleArray;
 91                    com.Parameters["@PicType"].Value = UpFile.ContentType;
 92                    com.Parameters["@PicDescription"].Value = this.TextBox1.Text;
 93                    com.Parameters["@PicSize"].Value = FileLength;
 94
 95                    //执行数据库操作
 96                    com.Connection.Open();
 97                    com.ExecuteNonQuery();
 98                    com.Connection.Close();
 99                    //提示上传成功
100                    this.lblMessage.Text = "上传成功!";
101                }
102            }
103            catch(Exception er)

104            
{
105                this.lblMessage.Text = er.Message.ToString();
106            }
107        }
108
109        //读出图片并显示
110        private void butDisplay_Click(object sender, System.EventArgs e)

111        
{
112            //获取输入的图片ID
113            int ImgID = int.Parse(this.txtPicID.Text);
114            //创建数据库连接字符串和SQL语句
115            string query = "SELECT * FROM Picture WHERE ID=@ImgID";
116            //创建SqlCommand对象并对参数进行初始化赋值
117            SqlCommand com = new SqlCommand(query,new SqlConnection(ConnStr));
118            com.Parameters.Add("@ImgID",SqlDbType.BigInt);
119            com.Parameters["@ImgID"].Value = ImgID;
120            //打开数据库连接
121            com.Connection.Open();
122            SqlDataReader dr = com.ExecuteReader();
123
124            if(dr.Read())

125            
{
126                Response.ContentType = dr["PicType"].ToString();
127                Response.OutputStream.Write((byte[])dr["PicData"],0,int.Parse(dr["PicSize"].ToString())+50000);
128            }
129            else

130            
{
131                this.lblMessage.Text = "没有这个图片的ID号";
132                Response.End();
133            }
134
135            //关闭SqlDataReader对象和数据库连接
136            dr.Close();
137            com.Connection.Close();
138            
139        }
140
141        
142    }
143}
144 
 
	posted on 
2006-07-20 11:25 
冷月孤峰 
阅读(
305) 
评论() 
 
收藏 
举报