SQLite 是一個(gè)輕量級(jí)的關(guān)系型數(shù)據(jù)庫,它不需要單獨(dú)的服務(wù)器進(jìn)程或系統(tǒng)配置,并且支持 ACID 事務(wù)、視圖、觸發(fā)器和外鍵。由于其輕量級(jí)和跨平臺(tái)的特性,SQLite 經(jīng)常在桌面應(yīng)用程序、移動(dòng)應(yīng)用程序和嵌入式系統(tǒng)中使用。在 C# 中使用 SQLite,您可以輕松地創(chuàng)建數(shù)據(jù)庫、執(zhí)行查詢、插入數(shù)據(jù)等。
搭建 SQLite 數(shù)據(jù)庫
在 C# 中使用 SQLite,您首先需要一個(gè) SQLite 的 NuGet 包。您可以在 Visual Studio 的 NuGet 包管理器中搜索并安裝 System.Data.SQLite
或 Microsoft.Data.Sqlite
。
安裝完成后,您就可以開始使用 SQLite 了。以下是一個(gè)簡(jiǎn)單的例子,展示如何在 C# 中創(chuàng)建一個(gè) SQLite 數(shù)據(jù)庫:
using System.Data.SQLite;
class Program
{
static void Main()
{
string dbPath = "example.db"; // 數(shù)據(jù)庫文件路徑
// 創(chuàng)建一個(gè)新的 SQLite 連接
using (SQLiteConnection conn = new SQLiteConnection($"Data Source={dbPath};Version=3;"))
{
conn.Open();
// 創(chuàng)建一個(gè)新的 SQL 命令
using (SQLiteCommand cmd = conn.CreateCommand())
{
// 創(chuàng)建一個(gè)新表
cmd.CommandText = @"
CREATE TABLE IF NOT EXISTS Users (
Id INTEGER PRIMARY KEY AUTOINCREMENT,
Name TEXT NOT NULL,
Email TEXT NOT NULL UNIQUE
)";
cmd.ExecuteNonQuery();
}
}
}
}
這段代碼創(chuàng)建了一個(gè)名為 example.db
的 SQLite 數(shù)據(jù)庫文件,并在其中創(chuàng)建了一個(gè)名為 Users
的表。
使用 SQLite 數(shù)據(jù)庫
一旦您有了數(shù)據(jù)庫和表,就可以開始執(zhí)行查詢、插入數(shù)據(jù)等操作了。以下是一個(gè)簡(jiǎn)單的例子,展示如何在 C# 中使用 SQLite:
using System.Data.SQLite;
class Program
{
static void Main()
{
string dbPath = "example.db"; // 數(shù)據(jù)庫文件路徑
// 創(chuàng)建一個(gè)新的 SQLite 連接
using (SQLiteConnection conn = new SQLiteConnection($"Data Source={dbPath};Version=3;"))
{
conn.Open();
// 創(chuàng)建一個(gè)新的 SQL 命令
using (SQLiteCommand cmd = conn.CreateCommand())
{
// 插入數(shù)據(jù)
cmd.CommandText = "INSERT INTO Users (Name, Email) VALUES (@name, @email)";
cmd.Parameters.AddWithValue("@name", "Alice");
cmd.Parameters.AddWithValue("@email", "alice@example.com");
cmd.ExecuteNonQuery();
// 查詢數(shù)據(jù)
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
表中插入了一條數(shù)據(jù),然后查詢了表中的所有數(shù)據(jù),并將結(jié)果打印到控制臺(tái)。
使用技巧
- 使用參數(shù)化查詢:如上例所示,使用參數(shù)化查詢可以防止 SQL 注入攻擊。
- 使用事務(wù):如果您需要執(zhí)行多個(gè)相關(guān)的數(shù)據(jù)庫操作,可以考慮將它們放在一個(gè)事務(wù)中,以確保數(shù)據(jù)的一致性。
- 使用 ORM:雖然 SQLite 本身是一個(gè)輕量級(jí)的數(shù)據(jù)庫,但您仍然可以使用 ORM(對(duì)象關(guān)系映射)工具,如 Entity Framework Core,來簡(jiǎn)化數(shù)據(jù)庫操作。
- 性能優(yōu)化:對(duì)于大型數(shù)據(jù)庫或高頻查詢,可以考慮使用索引、緩存等技術(shù)來優(yōu)化性能。
- 錯(cuò)誤處理:在數(shù)據(jù)庫操作中,經(jīng)常會(huì)遇到各種錯(cuò)誤,如連接失敗、查詢錯(cuò)誤等。因此,建議您始終在代碼中添加適當(dāng)?shù)腻e(cuò)誤處理邏輯。
該文章在 2024/2/22 15:33:01 編輯過