使用C插入图像到SQL Server 2008表#
我试图将一个新产品插入到product
表中,其中一列是图像。这是我的代码:使用C插入图像到SQL Server 2008表#
private void pictureBox1_Click(object sender, EventArgs e) {
OpenFileDialog dlg = new OpenFileDialog();
dlg.Title = "Open Image";
dlg.Filter = "bmp files (*.bmp)|*.bmp";
if (dlg.ShowDialog() == DialogResult.OK)
{
pictureBox1.Image = Image.FromFile(dlg.FileName);
ImageToByte(pictureBox1.Image);
}
dlg.Dispose();
}
public static byte[] ImageToByte(Image img)
{
ImageConverter converter = new ImageConverter();
return (byte[])converter.ConvertTo(img, typeof(byte[]));
}
我得到这个错误:
未能参数值从位图转换为一个byte []。
我该如何解决?
感谢
回答:
图像保存到内存流,然后将其转换为字节数组:
private byte[] ImageToByte(System.Drawing.Image imageToConvert, System.Drawing.Imaging.ImageFormat formatOfImage)
{
byte[] Ret;
try
{
using (MemoryStream ms = new MemoryStream())
{
imageToConvert.Save(ms, formatOfImage);
Ret = ms.ToArray();
}
}
catch (Exception) { throw; }
return Ret;
}
用法示例为位图你的情况
ImageToByte([your image here], System.Drawing.Imaging.ImageFormat.Bmp);
回答:
你可以做它通过以下方式:
public static byte[] ToByteArray(this Image image, ImageFormat format) {
using(MemoryStream ms = new MemoryStream())
{
image.Save(ms, format);
return ms.ToArray();
}
}
并使用此:
var image = yourImageFromPictureBox; byte[] arr = image.ToByteArray(ImageFormat.Bmp);
以上是 使用C插入图像到SQL Server 2008表# 的全部内容, 来源链接: utcz.com/qa/258739.html