我是C#.Net的新手。我们正在大学教授它,并使用Visual Studio创建Windows窗体。作为该主题的新部分,我们使用数据库,表格和数据集。
我打开了一个新的Windows窗体项目,并立即为其添加了一个新的数据库。我想要创建的表将有2列 - ImageID和图像本身。我以什么方式将图像添加到框中?我已尝试完整路径,相对路径并拖动图像,但无论我做什么,我都会收到相同的错误消息....
无效值
此单元格中更改的值未被识别为有效。 .Net框架数据类型:字节[]
错误消息:您无法使用结果窗格将此字段数据设置为 NULL以外的值 键入适合数据类型的值或按ESC取消 改变
我怎么能在那里有图像?我只是不知道如何使用表中的图像数据类型。任何帮助深表感谢。
答案 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 []。