8、图片的上传与读取

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Data.SqlClient;

namespace WindowsFormsApplication1
{
    public partial class FormImage : Form
    {
        public FormImage()
        {
            InitializeComponent();
        }
     //上传
        private void button1_Click(object sender, EventArgs e)
        {
            openFileDialog1.Filter = "*jpg|*.jpg|*bmp|*.bmp|*gif|*.gif"; 
            DialogResult dia = openFileDialog1.ShowDialog();
            if (dia == DialogResult.OK)
            {
                string filename = openFileDialog1.FileName;
                FileStream fs = new FileStream(filename,FileMode.Open,FileAccess.Read);//将图片读入流中
                byte[] imagebytes = new byte[fs.Length];//二进制数组,用以临时存储图像的二进制编码
                BinaryReader br = new BinaryReader(fs);//二进制读取器
                imagebytes = br.ReadBytes(Convert.ToInt32(fs.Length));//将图片读入到二进制数组中
                //开始连接数据库存入数据库中
                SqlConnection conn = new SqlConnection("server=.;database=schoolData;user=sa;pwd=");
                conn.Open();
                SqlCommand cmd = conn.CreateCommand();
                cmd.CommandText = "insert into tutable values(@image)";
                cmd.Parameters.Clear();
                cmd.Parameters.Add("@image",imagebytes);
                cmd.ExecuteNonQuery();
                conn.Close();
                MessageBox.Show("图片上传成功");
            }
        }
        //读取
        private void button2_Click(object sender, EventArgs e)
        {
            SqlConnection conn = new SqlConnection("server=.;database=schoolData;user=sa;pwd=");
            conn.Open();
            SqlCommand cmd = conn.CreateCommand();
            cmd.CommandText = "select top 1 *from tutable";
            SqlDataReader dr = cmd.ExecuteReader();
            dr.Read();
            byte[] imgbytes = (byte[])dr["tuxiang"];
            //将图像写入内存
            MemoryStream ms = new MemoryStream(imgbytes, 0, imgbytes.Length);
            ms.Write(imgbytes, 0, imgbytes.Length);
            Image img = Image.FromStream(ms);
            this.pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;
            this.pictureBox1.Image = img;
        }
    }
}

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。