您的位置:首页 > 数据库

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

2015-06-09 11:08 375 查看
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;
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: