zoukankan      html  css  js  c++  java
  • 保存图片到SQL Server

      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 窗体设计器生成的代码
     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
  • 相关阅读:
    用sql合并列,两句话合为一句
    微信公众平台中添加qq在线聊天代码
    我被7岁4岁的小姐妹狠狠教训了一番
    Yahoo News Digest(雅虎新闻摘要)APP的推出,未来的seo界又要受伤了
    新浪微博@别人字母不分大小写(微博昵称不分大小写)
    最近打算体验一下discuz,有不错的结构化数据插件
    使用css3来实现边框圆角效果
    用WP_Query自定义WordPress 主循环
    关闭火车头dedecms发布模块自动关键词,解决火车头发布dedecms文章关键词过多问题
    dedecms发布文章时多个Tag间分割逗号自动变成英文逗号
  • 原文地址:https://www.cnblogs.com/Lewis/p/449079.html
Copyright © 2011-2022 走看看