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

标签 c# database image visual-studio-2010

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

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

Invalid Value
The changed value in this cell was not recognized as being valid. .Net Framework Data Type: Byte[]
Error Message: You cannot use the result pane to set this Field data to values other than NULL
Type a value appropriate for the data type or press ESC to cancel the change

我怎样才能在里面放图片?我只是不知道如何在表中使用图像数据类型。任何帮助深表感谢。

最佳答案

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

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 问题中,您可以找到有关此方法优缺点的更多信息:

关于c# - 如何在 Visual Studio 2010 的数据库中包含图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13693454/

相关文章:

c# - 我的 lambda 表达式没有产生我预期的结果

c# - 使用 C# 创建控制台应用程序以从 Azure 表存储读取数据

sql - 如何通过C-API运行SQLite3 'PRAGMA'命令?

css - 排列 Bootstrap 响应图像

c# - 何时以及为何应实现 IComponent、IContainer 和 ISite?

c# - 使用 XML 注释记录 C# 代码的最佳实践是什么?

java - Tomcat H2 部署

sql - 如何按字母顺序对 SQL 查询进行排序但忽略前导数字?

c++ - 使用 Stitcher 的 OpenCV 断言失败

asp.net-mvc - 如何在 Kendo 网格单元格上将图标显示为值?