将PictureBox的Image到SQL Server数据库 [英] Insert PictureBox Image into Sql Server database

查看:405
本文介绍了将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 (加载从图片框

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆