本文將詳細介紹如何使用C#進行SQLite表的基本操作,包括創建表、修改表結構、刪除表和重命名表。這些操作是數據庫管理的基礎,對于開發數據驅動的應用程序至關重要。
準備工作
首先,確保你已經安裝了 System.Data.SQLite
NuGet包。在你的C#文件頂部添加以下using語句:
using System;
using System.Data.SQLite;
連接到數據庫
在進行任何表操作之前,我們需要先連接到數據庫。以下是一個建立連接的輔助方法:
public static SQLiteConnection ConnectToDatabase(string dbPath)
{
try
{
SQLiteConnection connection = new SQLiteConnection($"Data Source={dbPath};Version=3;");
connection.Open();
return connection;
}
catch (Exception ex)
{
Console.WriteLine($"連接數據庫時出錯:{ex.Message}");
return null;
}
}
創建表
創建表是最基本的操作之一。以下是創建表的方法:
public static void CreateTable(SQLiteConnection connection, string tableName, string[] columns)
{
try
{
string columnsDefinition = string.Join(", ", columns);
string sql = $"CREATE TABLE IF NOT EXISTS {tableName} ({columnsDefinition})";
using (SQLiteCommand command = new SQLiteCommand(sql, connection))
{
command.ExecuteNonQuery();
}
Console.WriteLine($"表 {tableName} 創建成功。");
}
catch (Exception ex)
{
Console.WriteLine($"創建表時出錯:{ex.Message}");
}
}
使用示例:
string[] columns = {
"ID INTEGER PRIMARY KEY AUTOINCREMENT",
"Name TEXT NOT NULL",
"Age INTEGER"
};
CreateTable(connection, "Users", columns);
修改表結構
修改表結構包括添加列、刪除列等操作。SQLite對表結構的修改有一些限制,主要支持添加列操作。
添加列
public static void AddColumn(SQLiteConnection connection, string tableName, string columnDefinition)
{
try
{
string sql = $"ALTER TABLE {tableName} ADD COLUMN {columnDefinition}";
using (SQLiteCommand command = new SQLiteCommand(sql, connection))
{
command.ExecuteNonQuery();
}
Console.WriteLine($"列 {columnDefinition} 添加成功。");
}
catch (Exception ex)
{
Console.WriteLine($"添加列時出錯:{ex.Message}");
}
}
使用示例:
AddColumn(connection, "Users", "Email TEXT");
刪除表
刪除表的操作相對簡單:
public static void DropTable(SQLiteConnection connection, string tableName)
{
try
{
string sql = $"DROP TABLE IF EXISTS {tableName}";
using (SQLiteCommand command = new SQLiteCommand(sql, connection))
{
command.ExecuteNonQuery();
}
Console.WriteLine($"表 {tableName} 刪除成功。");
}
catch (Exception ex)
{
Console.WriteLine($"刪除表時出錯:{ex.Message}");
}
}
使用示例:
DropTable(connection, "Users");
重命名表
SQLite支持使用 ALTER TABLE
語句來重命名表:
public static void RenameTable(SQLiteConnection connection, string oldTableName, string newTableName)
{
try
{
string sql = $"ALTER TABLE {oldTableName} RENAME TO {newTableName}";
using (SQLiteCommand command = new SQLiteCommand(sql, connection))
{
command.ExecuteNonQuery();
}
Console.WriteLine($"表 {oldTableName} 重命名為 {newTableName} 成功。");
}
catch (Exception ex)
{
Console.WriteLine($"重命名表時出錯:{ex.Message}");
}
}
使用示例:
RenameTable(connection, "Users", "Customers");
完整示例
以下是一個完整的示例,展示了如何使用上述所有方法:
using System;
using System.Data.SQLite;
class Program
{
static void Main(string[] args)
{
string dbPath = "C:\\example.db";
SQLiteConnection connection = ConnectToDatabase(dbPath);
if (connection != null)
{
// 創建表
string[] columns = {
"ID INTEGER PRIMARY KEY AUTOINCREMENT",
"Name TEXT NOT NULL",
"Age INTEGER"
};
CreateTable(connection, "Users", columns);
// 添加列
AddColumn(connection, "Users", "Email TEXT");
// 重命名表
RenameTable(connection, "Users", "Customers");
// 刪除表
DropTable(connection, "Customers");
// 關閉連接
connection.Close();
}
}
// 連接數據庫方法
public static SQLiteConnection ConnectToDatabase(string dbPath)
{
// 實現代碼...
}
// 創建表方法
public static void CreateTable(SQLiteConnection connection, string tableName, string[] columns)
{
// 實現代碼...
}
// 添加列方法
public static void AddColumn(SQLiteConnection connection, string tableName, string columnDefinition)
{
// 實現代碼...
}
// 刪除表方法
public static void DropTable(SQLiteConnection connection, string tableName)
{
// 實現代碼...
}
// 重命名表方法
public static void RenameTable(SQLiteConnection connection, string oldTableName, string newTableName)
{
// 實現代碼...
}
}
注意事項
SQLite對表結構的修改有一些限制,例如不支持直接刪除或修改列。如果需要這些操作,通常的做法是創建一個新表,復制數據,然后刪除舊表。
在實際應用中,應該考慮使用參數化查詢來防止SQL注入攻擊。
對于大型數據庫操作,考慮使用事務來確保數據完整性。
始終記得在完成操作后關閉數據庫連接。
結論
本文詳細介紹了使用C#進行SQLite表操作的方法,包括創建表、修改表結構、刪除表和重命名表。這些操作為進一步的數據管理和操作奠定了基礎。在實際應用中,你還需要考慮數據插入、查詢、更新和刪除等更多操作。
該文章在 2024/11/1 9:14:51 編輯過