如何将SQL数据库上的图像转换为System.Drawing.Image?

时间:2011-08-11 21:58:43

标签: vb.net visual-studio-2008 sql-server-2008 sql-server-2000

我目前正在使用Visual Studio 2008(VB.Net)和SQL Server 2008.我将数据库保存为image。当我将其提取到我的代码中时,它是System.Byte[],我无法将其转换为System.Drawing.Image以保存到我的DevExpress(v10.2).XtraEditors.ImageEdit。

我试过

Dim imgStream As MemoryStream = New MemoryStream(image, 0, image.Length)

Dim imgStream As MemoryStream = New MemoryStream(image)

然而即便如此,当我尝试时,我无法拨打image.FromStream(imgStream)bitmap.FromStream(imgStream),因为我收到“参数无效”。

编辑:

我们正在使用SQL 2000上的先前系统进行更新。当我运行上一个程序时,我可以在程序中看到该图像。当我运行新的图像时,我迁移的任何图像都是“无效参数”,但是我添加到数据库的任何图像(通过程序上的输入)都是可见的。当我从旧数据库和新数据库中获取图像时,它们完全相同。在迁移数据时我应该考虑SQL 2000和SQL 2008之间的区别吗?

1 个答案:

答案 0 :(得分:1)

试试这个:

Dim MyConverter as ImageConverter = new System.Drawing.ImageConverter()
Dim MyImage as Image = imageConverter.ConvertFrom(byteArray)

但是,此错误通常意味着您的输入数据无效。你的字节数组包含有效的图像数据有多确定?