图片以数据流形式存储到数据库中

private void button1_Click_1(object sender, EventArgs e)
{
using (OpenFileDialog lvse = new OpenFileDialog())
{
lvse.Title = "选择数据文件";
lvse.InitialDirectory = "";
lvse.Filter = "数据文件(*.jpg)|*.jpg";
lvse.FilterIndex = 1;
if (lvse.ShowDialog() == DialogResult.OK)
{
textBox1.Text = lvse.FileName;

//将需要存储的图片读取为数据流

FileStream fs = new FileStream(textBox1.Text, FileMode.Open, FileAccess.Read);
Byte[] byte_fs = new byte[fs.Length];
fs.Read(byte_fs, 0, Convert.ToInt32(fs.Length));
fs.Close();
//建立数据库连接
SqlConnection conn = new SqlConnection("server=DESKTOP-DJS6JVL;uid=shwy;pwd=801212;database=test");
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = "insert into Img(strTP) values(@image_file)";
SqlParameter[] param = new SqlParameter[1];
param[0] = new SqlParameter("@image_file", SqlDbType.Image);
param[0].Value = byte_fs;

cmd.Parameters.Add(param[0]);

//执行SQL语句
cmd.ExecuteNonQuery();
conn.Close();

}
}
}

private void button2_Click(object sender, EventArgs e)
{
byte[] Data = new byte[0];
SqlConnection conn = new SqlConnection("server=DESKTOP-DJS6JVL;uid=shwy;pwd=801212;database=test");
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = "select * from Img";
SqlDataReader sdr = cmd.ExecuteReader();
sdr.Read();
Data = (byte[])sdr["strTP"];//读取第一个图片的位流
MemoryStream mystream = new MemoryStream(Data);
//用指定的数据流来创建一个image图片
System.Drawing.Image picbImage = System.Drawing.Image.FromStream(mystream, true);
mystream.Close();
pictureBox1.Image = picbImage;
conn.Close();
}

posted @ 2018-07-10 14:47  chenlijun0102  阅读(2258)  评论(0编辑  收藏  举报