本文将详细介绍如何使用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 编辑过