数据库存储图片和读取图片

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

namespace WindowsFormsApplication2
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog op = new OpenFileDialog();
            DialogResult isok = op.ShowDialog();
            if (isok==DialogResult.OK)
            {
                //公开以文件为主的 Stream,既支持同步读写操作,也支持异步读写操作。
                FileStream fs = new FileStream(op.FileName, FileMode.Open);//mode一个常数,用于确定如何打开或创建文件。
                Image img = System.Drawing.Bitmap.FromStream(fs);
                pictureBox1.Image = img;
                fs.Close();
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            OpenFileDialog op = new OpenFileDialog();
            DialogResult isok = op.ShowDialog();
            if (isok == DialogResult.OK)
            {
                //读取图片存入数据库
                FileStream fs = new FileStream(op.FileName, FileMode.Open);
                BinaryReader br = new BinaryReader(fs);//二进制读取器
                byte[] buffer=new byte[fs.Length];//二进制字节数组
                buffer=br.ReadBytes((int)fs.Length);
                SqlConnection conn = new SqlConnection("server=.;database=car;uid=sa;pwd=123");
                SqlCommand cmd = conn.CreateCommand();
                cmd.CommandText = "insert into pic values(4,@buffer)";
                cmd.Parameters.Clear();
                cmd.Parameters.Add("@buffer",buffer);
                conn.Open();
                cmd.ExecuteNonQuery();
                cmd.Dispose();
                cmd.CommandText = "select top 1 * from pic order by code desc";
                SqlDataReader dr = cmd.ExecuteReader();
                byte[] by = new byte[fs.Length];
                if (dr.Read())
                {                                       
                    by=(byte[])(dr["pics"]);
                }
                MemoryStream ms = new MemoryStream(by);
                Image img = System.Drawing.Bitmap.FromStream(ms);
                pictureBox1.Image = img;
            }
        }
    }
}

 

posted @ 2015-06-09 11:08  九省巡按  阅读(398)  评论(0编辑  收藏  举报