用C#连接和操作SQLite数据库,核心是引入System.Data.SQLite(推荐)或Microsoft.Data.Sqlite(.NET Core/.NET 5+ 官方推荐)这两个库。不需要安装独立数据库服务,SQLite 是单文件嵌入式数据库,轻量、跨平台、零配置。
安装 SQLite 数据库驱动
根据项目类型选择:
传统 .NET Framework 项目:在 NuGet 包管理器中安装 System.Data.SQLite(含设计时支持)或 System.Data.SQLite.Core(仅运行时) .NET Core / .NET 5+ / .NET 6+ 项目:推荐安装 Microsoft.Data.Sqlite(微软官方维护,轻量、API 简洁、与 EF Core 深度集成)以 Visual Studio 为例,右键项目 → “管理 NuGet 包” → 搜索并安装对应包即可。
连接 SQLite 数据库(字符串 + Connection 对象)
SQLite 连接字符串非常简单,主要指定数据库文件路径:
基础写法:"Data Source=database.db"带完整路径:
"Data Source=C:\myapp\data.db"(Windows)或
"Data Source=/home/user/data.db"(Linux/macOS) 首次连接会自动创建文件;若路径不存在,需确保目录已存在,否则抛异常
代码示例(使用 Microsoft.Data.Sqlite):
using Microsoft.Data.Sqlite; var connectionString = "Data Source=app.db"; using var connection = new SqliteConnection(connectionString); connection.Open(); // 此时才真正创建/打开文件
执行 SQL 查询与增删改操作
通过
SqliteCommand执行命令,推荐使用参数化查询防止 SQL 注入: 查询数据(SELECT):用
ExecuteReader()配合
SqliteDataReader插入/更新/删除(INSERT/UPDATE/DELETE):用
ExecuteNonQuery(),返回影响行数 单值查询(如 COUNT、MAX):用
ExecuteScalar()
示例:插入一条用户记录
using var cmd = connection.CreateCommand();
cmd.CommandText = "INSERT INTO Users (Name, Age) VALUES (@name, @age)";
cmd.Parameters.AddWithValue("@name", "张三");
cmd.Parameters.AddWithValue("@age", 28);
cmd.ExecuteNonQuery();
建表与初始化(首次运行常用)
应用启动时可检查并创建表结构(避免重复建表):
using var cmd = connection.CreateCommand();
cmd.CommandText = @"
CREATE TABLE IF NOT EXISTS Users (
Id INTEGER PRIMARY KEY AUTOINCREMENT,
Name TEXT NOT NULL,
Age INTEGER
)";
cmd.ExecuteNonQuery();
注意:
IF NOT EXISTS是 SQLite 支持的关键语法,能安全跳过已存在的表。
基本上就这些——连接轻量、语法标准、无需服务端。只要引用对包、路径可写、SQL 写对,就能快速上手 SQLite。不复杂但容易忽略权限和路径问题,开发时建议把 db 文件放在
AppDomain.CurrentDomain.BaseDirectory下方便定位。
