C#怎么连接SQLite数据库 C#操作SQLite数据库教程

15次阅读

C#连接sqlite数据库需根据项目类型选择System.Data.sqlite.net Framework)或microsoft.Data.Sqlite(.NET Core+),连接字符串为”Data Source=xxx.db”,首次连接自动创建文件,使用SqliteCommand配合参数化查询执行CRUD操作,并用CREATE table if NOT EXISTS安全建表。

C#怎么连接SQLite数据库 C#操作SQLite数据库教程

用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 下方便定位。

text=ZqhQzanResources