您好,欢迎来到年旅网。
搜索
您的当前位置:首页PictureBox中的Image对象转存到数据库

PictureBox中的Image对象转存到数据库

来源:年旅网

这个是在百度知道上回答问题时看到的,一时没有做出来,看了一些资料才弄清楚的。 主要有两个点: 1.对流的操作不熟悉,不知道图片Image对象是可以”保存“到MemoryStream中的; image.Save(mstream, System.Drawing.Imaging.ImageFormat.Jpeg); 2.二进制数

这个是在百度知道上回答问题时看到的,一时没有做出来,看了一些资料才弄清楚的。

主要有两个点:

1.对流的操作不熟悉,不知道图片Image对象是可以”保存“到MemoryStream中的;

image.Save(mstream, System.Drawing.Imaging.ImageFormat.Jpeg);

2.二进制数据插入到数据库的操作不清楚。

SqlParameter param = new SqlParameter("ImgData", SqlDbType.VarBinary, imageBytes.Length);
param.Value = imageBytes;
cmd.Parameters.Add(param);

下面贴上代码

private void button1_Click(object sender, EventArgs e)
 {
 byte[] imageBytes = GetImageBytes(pictureBox1.Image);

 string connStr = "SQL Server连接字符串";

 using (SqlConnection conn = new SqlConnection(connStr))
 {
 string sql = "Insert Into T_Img Values (@ImgData) ";
 using (SqlCommand cmd = new SqlCommand(sql))
 {
 SqlParameter param = new SqlParameter("ImgData", SqlDbType.VarBinary, imageBytes.Length);
 param.Value = imageBytes;
 cmd.Parameters.Add(param);

 cmd.Connection = conn;
 conn.Open();
 int i = cmd.ExecuteNonQuery();
 MessageBox.Show(i.ToString());
 }
 }
 }
 private byte[] GetImageBytes(Image image)
 {
 MemoryStream mstream = new MemoryStream();
 image.Save(mstream, System.Drawing.Imaging.ImageFormat.Jpeg);
 byte[] byteData = new Byte[mstream.Length];
 mstream.Position = 0;
 mstream.Read(byteData, 0, byteData.Length);
 mstream.Close();
 return byteData;
 }

上传了源代码:http://download.csdn.net/detail/frombegintoend/4403728

Copyright © 2019- oldu.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务