将PictureBox的Image到SQL Server数据库 [英] Insert PictureBox Image into Sql Server database
本文介绍了将PictureBox的Image到SQL Server数据库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试着去插入我的表从图片框
一些图片:
Im trying to insert into my table some image from picturebox
:
MemoryStream ms = new MemoryStream();
pictureBox1.Image.Save(ms, ImageFormat.Jpeg);
byte[] photo = new byte[ms.Length];
ms.Position = 0;
ms.Read(photo, 0, photo.Length);
command.CommandText = "INSERT INTO ImagesTable (Image) VALUES('" + photo + "')";
command.CommandType = CommandType.Text;
command.ExecuteNonQuery();
我得到以下结果数据库:
I get the following result in database:
ID Image
6 0x53797374656D2E427974655B5D
然而,当我使用 SQL脚本
插入一些图片:
However when I insert some image using SQL script
:
insert into ImagesTable (Image)
SELECT BulkColumn
FROM Openrowset( Bulk 'C:\pinguins.jpg', Single_Blob) as img
然后插入的数据是这样的:
Then inserted data looks like this:
ID Image
4 0xFFD8FFE000104A464946000102010[.....]
下面的二进制数据是非常更长的时间。
Here binary data is much much longer.
当我从数据库中检索图片回成图片框
,它正确地显示出来:
When I retrieve this image from database back into picturebox
, it shows up correctly:
command.CommandText = "SELECT Image FROM ImagesTable where ID = 4";
byte[] image = (byte[])command.ExecuteScalar();
MemoryStream ms1 = new MemoryStream(image);
pictureBox2.Image = Bitmap.FromStream(ms1);
但随着检索图像时,我得到错误ID = 6 $ C 。$ C>(加载从
图片框
)
ArgumentException: Parameter is not valid.
我在做什么错了?
What am I doing wrong?
我会很感激的任何建议。
I'd appreciate any advice.
推荐答案
写的是这样的:]
Image img = Image.FromFile(@"C:\Lenna.jpg");
byte[] arr;
using (MemoryStream ms = new MemoryStream())
{
img.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
arr = ms.ToArray();
}
或
Image img = picturebox1.Image();
byte[] arr;
ImageConverter converter = new ImageConverter();
arr=(byte[])converter.ConvertTo(img, typeof(byte[]));
command.CommandText = "INSERT INTO ImagesTable (Image) VALUES('" + arr + "')";
command.CommandType = CommandType.Text;
command.ExecuteNonQuery();
这篇关于将PictureBox的Image到SQL Server数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文