使用 C# 在 SQLite 中处理图像,请注意,有些人反对将图像放入数据库。 在这里,我们仅展示如何执行此操作,并且避免了是否将图像保存在数据库中的技术问题。
对于此示例,我们创建一个名为 Images 的新表。 对于图像,我们使用BLOB
数据类型,代表二进制大对象。
插入图像
在第一个示例中,我们将图像插入 SQLite 数据库。
我们从当前工作目录中读取图像,并将其写入 SQLite test.db
数据库的Images
表中。
图像数据将存储在字节数组中。
ReadAllBytes()
方法打开一个二进制文件,将文件的内容读取到字节数组中,然后关闭该文件。
我们准备一个 SQL 语句,用于将字节数组插入Images
表的 Data 列中。
我们将二进制数据绑定到预备语句。 然后执行该语句。 该图像被写入数据库表。
读取图像
在本节中,我们将执行相反的操作。 我们将从数据库表中读取图像。
我们从Images
表中读取图像数据,并将其写入另一个文件woman2.jpg
中。
该行从表中选择图像数据。
我们从数据库表中检索二进制数据。 数据存储在字节数组中。
WriteAllBytes()
方法创建一个新文件,将指定的字节数组写入该文件,然后关闭该文件。 如果目标文件已经存在,则将其覆盖。 当数据库表为空并运行此示例时,我们得到一个空值。 因此,我们检查空值。