SQLite 是一个轻量级的关系型数据库,它不需要单独的服务器进程或系统配置,并且支持 ACID 事务、视图、触发器和外键。由于其轻量级和跨平台的特性,SQLite 经常在桌面应用程序、移动应用程序和嵌入式系统中使用。在 C# 中使用 SQLite,您可以轻松地创建数据库、执行查询、插入数据等。
搭建 SQLite 数据库
在 C# 中使用 SQLite,您首先需要一个 SQLite 的 NuGet 包。您可以在 Visual Studio 的 NuGet 包管理器中搜索并安装 System.Data.SQLite 或 Microsoft.Data.Sqlite。
安装完成后,您就可以开始使用 SQLite 了。以下是一个简单的例子,展示如何在 C# 中创建一个 SQLite 数据库:
using System.Data.SQLite;
class Program
{
static void Main()
{
string dbPath = "example.db"; // 数据库文件路径
// 创建一个新的 SQLite 连接
using (SQLiteConnection conn = new SQLiteConnection($"Data Source={dbPath};Version=3;"))
{
conn.Open();
// 创建一个新的 SQL 命令
using (SQLiteCommand cmd = conn.CreateCommand())
{
// 创建一个新表
cmd.CommandText = @"
CREATE TABLE IF NOT EXISTS Users (
Id INTEGER PRIMARY KEY AUTOINCREMENT,
Name TEXT NOT NULL,
Email TEXT NOT NULL UNIQUE
)";
cmd.ExecuteNonQuery();
}
}
}
}
这段代码创建了一个名为 example.db 的 SQLite 数据库文件,并在其中创建了一个名为 Users 的表。
使用 SQLite 数据库
一旦您有了数据库和表,就可以开始执行查询、插入数据等操作了。以下是一个简单的例子,展示如何在 C# 中使用 SQLite:
using System.Data.SQLite;
class Program
{
static void Main()
{
string dbPath = "example.db"; // 数据库文件路径
// 创建一个新的 SQLite 连接
using (SQLiteConnection conn = new SQLiteConnection($"Data Source={dbPath};Version=3;"))
{
conn.Open();
// 创建一个新的 SQL 命令
using (SQLiteCommand cmd = conn.CreateCommand())
{
// 插入数据
cmd.CommandText = "INSERT INTO Users (Name, Email) VALUES (@name, @email)";
cmd.Parameters.AddWithValue("@name", "Alice");
cmd.Parameters.AddWithValue("@email", "alice@example.com");
cmd.ExecuteNonQuery();
// 查询数据
cmd.CommandText = "SELECT * FROM Users";
using (SQLiteDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
Console.WriteLine($"ID: {reader.GetInt32(0)}, Name: {reader.GetString(1)}, Email: {reader.GetString(2)}");
}
}
}
}
}
}
这段代码首先向 Users 表中插入了一条数据,然后查询了表中的所有数据,并将结果打印到控制台。
使用技巧
- 使用参数化查询:如上例所示,使用参数化查询可以防止 SQL 注入攻击。
- 使用事务:如果您需要执行多个相关的数据库操作,可以考虑将它们放在一个事务中,以确保数据的一致性。
- 使用 ORM:虽然 SQLite 本身是一个轻量级的数据库,但您仍然可以使用 ORM(对象关系映射)工具,如 Entity Framework Core,来简化数据库操作。
- 性能优化:对于大型数据库或高频查询,可以考虑使用索引、缓存等技术来优化性能。
- 错误处理:在数据库操作中,经常会遇到各种错误,如连接失败、查询错误等。因此,建议您始终在代码中添加适当的错误处理逻辑。
希望这篇文章能帮助您了解如何在 C# 中搭建和使用 SQLite 数据库。