前言
SQLite是一款非常輕量級的關系數據庫系統,以SQL為基礎,并支持多數SQL92標準。由于其輕量、易用和跨平臺特性而被廣泛使用。使用SQLite時,通過訪問數據庫的程序直接從磁盤上的數據庫文件進行讀寫操作。本文探討如何在C#中實現操作SQLite數據庫,主要通過連接數據庫、執行增、刪、改和查等基本操作。
實現操作
1、實現前提
在C#實現SQLite數據庫操作需要引用System.Data.SQLite,我們可以通過NuGet包管理器安裝引用它。
Install-Package System.Data.SQLite
SQLite是直接訪問磁盤上的數據庫文件,因此在執行相關操作前,需要創建好SQLite數據庫文件。數據庫名的后綴可以直接指定,甚至沒有后綴都可以。
// 創建數據庫 方式一
string dbFilename = string.Format("{0}db{1}{2}", AppDomain.CurrentDomain.BaseDirectory, Path.PathSeparator, "test.db");
if (!File.Exists(dbFilename))
{
// 創建數據庫文件
FileStream fileStream = File.Create(dbFilename);
}
// 創建數據庫 方式二
string dbFilename = string.Format("{0}db{1}{2}", AppDomain.CurrentDomain.BaseDirectory, Path.PathSeparator, "test.db");
if (!File.Exists(dbFilename))
{
// 創建數據庫文件
SQLiteConnection.CreateFile(dbFilename);
}
2、連接數據庫
下面代碼段演示如何連接SQLite數據庫:
// 數據庫未設置密碼
string connectionString =string.Format("Data Source={0}; Version=3; ",dbFilename);
// 連接數據庫
using (SQLiteConnection connection = new SQLiteConnection(connectionString))
{
// 打開數據庫連接
connection.Open();
}
// 數據庫設置了密碼
string connectionString =string.Format("Data Source={0}; Version=3; Password={1};",dbFilename,"123456");
// 連接數據庫
using (SQLiteConnection connection = new SQLiteConnection(connectionString))
{
// 打開數據庫連接
connection.Open();
}
3、設置數據庫密碼
下面代碼段演示給未設置密碼的數據庫設置密碼:
// 數據庫未設置密碼
string connectionString = string.Format("Data Source={0};Version=3;",dbFilename);
// 連接數據庫
using (SQLiteConnection connection = new SQLiteConnection(connectionString))
{
// 打開數據庫連接
connection.Open();
// 設置密碼
connection.ChangePassword("123456");
}
4、創建數據表
下面代碼段演示在數據庫里創建數據表,如用戶表:
// 數據庫未設置密碼
string connectionString = string.Format("Data Source={0};Version=3;",dbFilename);
// 連接數據庫
using (SQLiteConnection connection = new SQLiteConnection(connectionString))
{
// 打開數據庫連接
connection.Open();
// 執行SQL的語句
string commandText = "CREATE TABLE IF NOT EXISTS Users (Id INTEGER PRIMARY KEY AUTOINCREMENT, Name VARCHAR(100), Code VARCHAR(100),Password VARCHAR(100))";
// 創建 SQLiteCommand
using (SQLiteCommand command = new SQLiteCommand(commandText, connection))
{
// 執行語句
command.ExecuteNonQuery();
}
}
5、增加數據庫表數據
下面代碼段演示往用戶表增加一行數據:
?// 數據庫未設置密碼
string connectionString = string.Format("Data Source={0};Version=3;",dbFilename);
// 連接數據庫
using (SQLiteConnection connection = new SQLiteConnection(connectionString))
{
// 打開數據庫連接
connection.Open();
// 執行SQL的語句
string commandText = "insert into Users (Name, Code,Password) values (@name, @code,@password)";
// 創建 SQLiteCommand
using (SQLiteCommand command = new SQLiteCommand(commandText, connection))
{
// 設置參數值
command.Parameters.AddWithValue("@name", "管理員");
command.Parameters.AddWithValue("@code", "admin");
command.Parameters.AddWithValue("@password", "pwd123456");
// 執行語句
command.ExecuteNonQuery();
}
}
6、修改數據庫表數據
下面代碼段演示修改數據庫表數據,如修改用戶密碼:
// 數據庫未設置密碼
string connectionString = string.Format("Data Source={0};Version=3;",dbFilename);
// 連接數據庫
using (SQLiteConnection connection = new SQLiteConnection(connectionString))
{
// 打開數據庫連接
connection.Open();
// 執行SQL的語句
string commandText = "update Users SET Password=@password WHERE Code = @code";
// 創建 SQLiteCommand
using (SQLiteCommand command = new SQLiteCommand(commandText, connection))
{
// 設置參數值
command.Parameters.AddWithValue("@code", "admin");
command.Parameters.AddWithValue("@password", "admin123456");
// 執行語句
command.ExecuteNonQuery();
}
}
7、查詢數據庫表數據
下面代碼段演示查詢數據庫表數據,如查詢用戶表數據:
// 數據庫未設置密碼
string connectionString = string.Format("Data Source={0};Version=3;",dbFilename);
// 連接數據庫
using (SQLiteConnection connection = new SQLiteConnection(connectionString))
{
// 打開數據庫連接
connection.Open();
// 執行SQL的語句
string commandText = "select * from Users";
// 創建 SQLiteCommand
using (SQLiteCommand command = new SQLiteCommand(commandText, connection))
{
// 執行語句 返回查詢數據
using (SQLiteDataReader reader = command.ExecuteReader())
{
// 輸出數據
while (reader.Read())
{
//
Console.WriteLine($"ID: {reader["Id"]}, 名稱: {reader["Name"]}, 編碼: {reader["Code"]}");
}
}
}
}
8、刪除數據庫表數據
下面代碼段演示刪除數據庫表數據,如刪除用戶表數據:
// 數據庫未設置密碼
string connectionString = string.Format("Data Source={0};Version=3;",dbFilename);
// 連接數據庫
using (SQLiteConnection connection = new SQLiteConnection(connectionString))
{
// 打開數據庫連接
connection.Open();
// 執行SQL的語句
string commandText = "delete from Users where Code = @code";
// 創建 SQLiteCommand
using (SQLiteCommand command = new SQLiteCommand(sql, connection))
{
// 設置參數值
command.Parameters.AddWithValue("@code", "admin");
// 執行語句
command.ExecuteNonQuery();
}
}
小結
通過上述示例,能夠清晰地了解如何在C#中有效地操作SQLite數據庫,并快速上手??稍诖嘶A上擴展更復雜的功能,并在實際項目中運用。
該文章在 2024/12/28 12:08:16 編輯過