如何在Visual Studio 2010中的数据库中包含图像

时间:2012-12-03 23:10:23

标签: c# database image visual-studio-2010

我是C#.Net的新手。我们正在大学教授它,并使用Visual Studio创建Windows窗体。作为该主题的新部分,我们使用数据库,表格和数据集。

我打开了一个新的Windows窗体项目,并立即为其添加了一个新的数据库。我想要创建的表将有2列 - ImageID和图像本身。我以什么方式将图像添加到框中?我已尝试完整路径,相对路径并拖动图像,但无论我做什么,我都会收到相同的错误消息....

  

无效值
  此单元格中更改的值未被识别为有效。   .Net框架数据类型:字节[]
  错误消息:您无法使用结果窗格将此字段数据设置为   NULL以外的值   键入适合数据类型的值或按ESC取消   改变

我怎么能在那里有图像?我只是不知道如何使用表中的图像数据类型。任何帮助深表感谢。

2 个答案:

答案 0 :(得分:0)

更简单的方法是将图像存储在文件系统中,并且只将其存储在数据库中。基本上你定义了一个基础文件夹:

string baseFolder = "c:\Program Files\MyApp\Images";

并使用它来存储数据库中的相对路径:

INSERT INTO ImagesTable (Name, Path)
Values ('German Shepherd', 'Dogs\german-shepherd.jpg')

然后,当您需要检索图像时,可以这样做:

string path = Path.Combine(baseFolder, 'Dogs\german-shepherd.jpg');
Image img = Image.FromFile(path);

在以下SO问题中,您可以找到有关此方法的优缺点的更多信息:

答案 1 :(得分:0)

您可以在sql server 2008中存储图像。只需创建具有列数据类型" image"的数据库表。 现在从.net代码使用文件上传控件选择图像文件,然后在将图像数据插入数据库之前将图像参数转换为byte []。