《文件读写到SQLite数据库的方法》博客中,介绍了文件读写到SQLite数据库的方法,例子使用的Python语言,本文是使用 C# 将文件读写到 SQLite 数据库的几种方法的具体示例,如果有些概念模糊可参考作者以前博客。
1. 使用 BLOB 存储文件
示例代码:
using System;
using System.Data.SQLite;
using System.IO;
class Program
{
static void Main(string[] args)
{
string databasePath = "example.db";
string connectionString = $"Data Source={databasePath};Version=3;";
// 创建数据库和表
using (var connection = new SQLiteConnection(connectionString))
{
connection.Open();
string createTableQuery = @"
CREATE TABLE IF NOT EXISTS Files (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
data BLOB NOT NULL
);";
using (var command = new SQLiteCommand(createTableQuery, connection))
{
command.ExecuteNonQuery();
}
}
// 插入文件到数据库
string filePath = "example.pdf"; // 替换为你的文件路径
InsertFile(filePath, connectionString);
// 从数据库读取文件
ReadFile(1, connectionString); // 假设读取 ID 为 1 的文件
}
static void InsertFile(string filePath, string connectionString)
{
byte[] fileData = File.ReadAllBytes(filePath);
string fileName = Path.GetFileName(filePath);
using (var connection = new SQLiteConnection(connectionString))
{
connection.Open();
string insertQuery = "INSERT INTO Files (name, data) VALUES (@name, @data)";
using (var command = new SQLiteCommand(insertQuery, connection))
{
command.Parameters.AddWithValue("@name", fileName);
command.Parameters.AddWithValue("@data", fileData)