在C#中集成SQLite推荐使用Microsoft.Data.Sqlite(.NET Core/.NET 5+首选),连接字符串指定数据库路径,需用using确保资源释放,必须使用参数化查询防SQL注入,EF Core场景则安装Microsoft.EntityFrameworkCore.Sqlite并配置UseSqlite。

在 C# 中集成 SQLite 很简单,关键是选对库、正确配置连接,并注意线程与资源管理。SQLite 是纯文件型数据库,无需单独安装服务,适合桌面应用、小型工具或移动端(通过 Xamarin / MAUI)。
安装 SQLite 官方 NuGet 包
推荐使用官方维护的 Microsoft.Data.Sqlite(.NET Core / .NET 5+ 默认首选),它轻量、跨平台、与 EF Core 深度兼容。
- 在项目中运行:dotnet add package Microsoft.Data.Sqlite
- 旧项目若用 .NET Framework,可选 System.Data.SQLite,但注意需匹配 x86/x64 平台并额外部署 native dll
- 避免混用多个 SQLite 包,容易引发加载冲突或版本不兼容
创建连接与执行基础操作
连接字符串只需指定数据库文件路径,不存在会自动创建。
- 示例连接字符串:"Data Source=app.db"(相对路径)或 "Data Source=C:\\data\\app.db"(绝对路径)
- 用 using 确保连接和命令及时释放:
using var conn = new SqliteConnection("Data Source=app.db");
conn.Open();
using var cmd = conn.CreateCommand();
cmd.CommandText = "CREATE TABLE IF NOT EXISTS Users (Id INTEGER PRIMARY KEY, Name TEXT)";
cmd.ExecuteNonQuery();
安全插入与查询数据(防 SQL 注入)
永远不要拼接用户输入到 SQL 字符串中。使用参数化查询是唯一可靠方式。
功能介绍:1.程序独立使用的MVC模式开发,程序代码与模板分离,会HTML就会做程序模板2.使用sqlite数据库,mysql数据库随便换,让您不再为购买数据库而烦恼3.增加首页数据自定义功能,导航数据自定义,快速打造属于您自己的网站4.seo伪静态设置更智能化,自定义seo规则,让蜘蛛更喜欢您的网站5.屏蔽ip访问功能5.支持一键采集功能,只要轻轻一点,上万淘宝b2c商品轻松入库,解决数据添加的
- 插入示例:cmd.CommandText = "INSERT INTO Users (Name) VALUES (@name)";
cmd.Parameters.AddWithValue("@name", userName); - 查询单值:cmd.CommandText = "SELECT COUNT(*) FROM Users WHERE Name = @name";
var count = (long)cmd.ExecuteScalar(); - 读取多行:using var reader = cmd.ExecuteReader();
while (reader.Read()) { Console.WriteLine(reader.GetString(1)); }
配合 Entity Framework Core 使用(推荐中大型场景)
若项目已用 EF Core,只需安装 Microsoft.EntityFrameworkCore.Sqlite,配置 DbContext 即可。
- 在 Startup.cs 或 Program.cs 中注册:
services.AddDbContext(options =>
options.UseSqlite("Data Source=app.db")); - 迁移命令:dotnet ef migrations add Init → dotnet ef database update
- EF 自动处理连接生命周期、事务、连接池等细节,开发效率高且不易出错
基本上就这些。SQLite 在 C# 中用起来不复杂,但容易忽略连接释放、线程安全(默认连接非线程安全)和 WAL 模式启用等细节。小项目直接用 Microsoft.Data.Sqlite 足够,有 ORM 需求就上 EF Core SQLite 提供商。









