SQLiteStudio 是一款免费开源、跨平台的 SQLite 数据库管理工具,以轻量、直观、功能全著称,适合开发与运维场景。
✨ 核心特点
- 跨平台:支持 Windows/macOS/Linux,便携版解压即用。
- 功能全:支持 SQLite2/3 与 SQLCipher 加密,多窗口编辑、语法高亮、自动补全、二进制查看、CSV/JSON/Excel 导入导出。
- 可扩展:插件体系支持自定义脚本与功能扩展。
🧩 实用场景
- 嵌入式 / 移动端数据调试(如 Android/iOS 本地数据库)。
- 协议解析与报文数据持久化(适合自动化、物联网场景)。
- 轻量数据报表与测试数据生成。
📚 资源推荐
- 官方手册:https://github.com/pawelsalawa/sqlitestudio/wiki/User_Manual
- GitHub:https://github.com/pawelsalawa/sqlitestudio
Microsoft.Data.Sqlite 示例(推荐)
cs
using Microsoft.Data.Sqlite;
using System;
class SqliteDemo
{
static void Main()
{
// 1. 连接数据库(文件不存在则自动创建)
string dbPath = "test.db"; // 数据库文件路径,也可以用 :memory: 表示内存数据库
using (var connection = new SqliteConnection($"Data Source={dbPath}"))
{
connection.Open();
try
{
// 2. 创建表
var createTableCmd = connection.CreateCommand();
createTableCmd.CommandText = @"
CREATE TABLE IF NOT EXISTS Users (
Id INTEGER PRIMARY KEY AUTOINCREMENT,
Name TEXT NOT NULL,
Age INTEGER
);
";
createTableCmd.ExecuteNonQuery();
Console.WriteLine("表创建成功(或已存在)");
// 3. 插入数据(参数化查询,防止SQL注入)
var insertCmd = connection.CreateCommand();
insertCmd.CommandText = "INSERT INTO Users (Name, Age) VALUES (@name, @age);";
insertCmd.Parameters.AddWithValue("@name", "张三");
insertCmd.Parameters.AddWithValue("@age", 25);
insertCmd.ExecuteNonQuery();
Console.WriteLine("数据插入成功");
// 4. 查询数据
var queryCmd = connection.CreateCommand();
queryCmd.CommandText = "SELECT Id, Name, Age FROM Users;";
using (var reader = queryCmd.ExecuteReader())
{
Console.WriteLine("\n查询结果:");
while (reader.Read())
{
Console.WriteLine($"ID: {reader.GetInt32(0)}, 姓名: {reader.GetString(1)}, 年龄: {reader.GetInt32(2)}");
}
}
}
catch (Exception ex)
{
Console.WriteLine($"操作失败:{ex.Message}");
}
}
}
}
SQLitePCL.raw 示例(轻量适配)
cs
using SQLitePCL;
using System;
class SqlitePclDemo
{
static void Main()
{
// 初始化库(必须)
Batteries_V2.Init();
// 1. 打开数据库(文件不存在则自动创建)
using (var db = new SQLiteConnection("test_pcl.db"))
{
try
{
// 2. 创建表
using (var cmd = db.Prepare(@"
CREATE TABLE IF NOT EXISTS Users (
Id INTEGER PRIMARY KEY AUTOINCREMENT,
Name TEXT NOT NULL,
Age INTEGER
);
"))
{
cmd.Step();
}
Console.WriteLine("表创建成功");
// 3. 插入数据
using (var cmd = db.Prepare("INSERT INTO Users (Name, Age) VALUES (?, ?);"))
{
cmd.Bind(1, "李四"); // 绑定第1个参数(索引从1开始)
cmd.Bind(2, 30); // 绑定第2个参数
cmd.Step();
}
Console.WriteLine("数据插入成功");
// 4. 查询数据
Console.WriteLine("\n查询结果:");
using (var cmd = db.Prepare("SELECT Id, Name, Age FROM Users;"))
{
while (cmd.Step() == SQLiteResult.ROW)
{
int id = cmd.GetInt32(0);
string name = cmd.GetString(1);
int age = cmd.GetInt32(2);
Console.WriteLine($"ID: {id}, 姓名: {name}, 年龄: {age}");
}
}
}
catch (Exception ex)
{
Console.WriteLine($"操作失败:{ex.Message}");
}
}
}
}