【发布时间】:2011-10-25 09:27:20
【问题描述】:
我目前正在使用 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 之间的差异吗?
【问题讨论】:
-
数据库不是存放图片的地方。更好的方法是将图像路径存储在数据库中。列类型
image与图片无关,它可以保存任何二进制数据。 -
不幸的是,这在我开始之前就已经设置好了,并且该程序将部署在多台计算机上,因此它需要是图像,因为每个人的计算机上都没有图像,也不会有相同的途径。
标签: vb.net visual-studio-2008 sql-server-2008 sql-server-2000