在 C# 中调用 SQLite 数据库

SQLite 是一种轻量级的嵌入式关系型数据库,广泛用于移动应用、桌面应用以及嵌入式系统中。在C#中,通过SQLite数据库进行数据存储和检索是一项常见任务。本文将介绍如何在C#中使用SQLite数据库,并提供相应的示例代码。

准备工作

安装SQLite库: 在C#项目中,我们通常使用System.Data.SQLite库来与SQLite数据库进行交互。你可以通过NuGet包管理器来安装这个库。常用的包有System.Data.SQLite和Microsoft.Data.Sqlite。本文将使用Microsoft.Data.Sqlite。在Visual Studio中,右键点击你的项目,选择“管理NuGet包”,然后搜索Microsoft.Data.Sqlite并安装。创建SQLite数据库: 如果你还没有SQLite数据库,可以使用SQLite工具(如DB Browser for SQLite)创建一个数据库文件,或者在代码中动态创建。

示例代码

下面是一个完整的示例,展示如何在C#中使用SQLite数据库进行创建表、插入数据、查询数据和更新数据等操作。

1. 创建SQLite连接

首先,我们需要创建一个SQLite连接。

using System; using Microsoft.Data.Sqlite; class Program { private static string connectionString = "Data Source=mydatabase.db"; static void Main(string[] args) { using (var connection = new SqliteConnection(connectionString)) { connection.Open(); // 在这里进行数据库操作 CreateTable(connection); InsertData(connection); QueryData(connection); UpdateData(connection); } } // 其他数据库操作方法... }
2. 创建表

接下来,我们创建一个表。例如,我们创建一个名为Users的表,包含Id和Name两个字段。

static void CreateTable(SqliteConnection connection) { string sql = "CREATE TABLE IF NOT EXISTS Users (Id INTEGER PRIMARY KEY, Name TEXT)"; using (var command = new SqliteCommand(sql, connection)) { command.ExecuteNonQuery(); Console.WriteLine("Table Users created."); } }
3. 插入数据

向Users表中插入一些数据。

static void InsertData(SqliteConnection connection) { string sql = "INSERT INTO Users (Name) VALUES (@Name)"; using (var command = new SqliteCommand(sql, connection)) { command.Parameters.AddWithValue("@Name", "Alice"); command.ExecuteNonQuery(); command.Parameters.AddWithValue("@Name", "Bob"); command.ExecuteNonQuery(); Console.WriteLine("Data inserted into Users."); } }
4. 查询数据

从Users表中查询数据并输出。

static void QueryData(SqliteConnection connection) { string sql = "SELECT Id, Name FROM Users"; using (var command = new SqliteCommand(sql, connection)) { using (var reader = command.ExecuteReader()) { while (reader.Read()) { Console.WriteLine($"Id: {reader["Id"]}, Name: {reader["Name"]}"); } } } }
5. 更新数据

更新Users表中的数据。

static void UpdateData(SqliteConnection connection) { string sql = "UPDATE Users SET Name = @NewName WHERE Id = @Id"; using (var command = new SqliteCommand(sql, connection)) { command.Parameters.AddWithValue("@NewName", "Charlie"); command.Parameters.AddWithValue("@Id", 1); command.ExecuteNonQuery(); Console.WriteLine("Data updated in Users."); } }

完整代码

以下是完整代码的汇总:

using System; using Microsoft.Data.Sqlite; class Program { private static string connectionString = "Data Source=mydatabase.db"; static void Main(string[] args) { using (var connection = new SqliteConnection(connectionString)) { connection.Open(); CreateTable(connection); InsertData(connection); QueryData(connection); UpdateData(connection); QueryData(connection); // 再次查询以查看更新结果 } } static void CreateTable(SqliteConnection connection) { string sql = "CREATE TABLE IF NOT EXISTS Users (Id INTEGER PRIMARY KEY, Name TEXT)"; using (var command = new SqliteCommand(sql, connection)) { command.ExecuteNonQuery(); Console.WriteLine("Table Users created."); } } static void InsertData(SqliteConnection connection) { string sql = "INSERT INTO Users (Name) VALUES (@Name)"; using (var command = new SqliteCommand(sql, connection)) { command.Parameters.AddWithValue("@Name", "Alice"); command.ExecuteNonQuery(); command.Parameters.AddWithValue("@Name", "Bob"); command.ExecuteNonQuery(); Console.WriteLine("Data inserted into Users."); } } static void QueryData(SqliteConnection connection) { string sql = "SELECT Id, Name FROM Users"; using (var command = new SqliteCommand(sql, connection)) { using (var reader = command.ExecuteReader()) { while (reader.Read()) { Console.WriteLine($"Id: {reader["Id"]}, Name: {reader["Name"]}"); } } } } static void UpdateData(SqliteConnection connection) { string sql = "UPDATE Users SET Name = @NewName WHERE Id = @Id"; using (var command = new SqliteCommand(sql, connection)) { command.Parameters.AddWithValue("@NewName", "Charlie"); command.Parameters.AddWithValue("@Id", 1); command.ExecuteNonQuery(); Console.WriteLine("Data updated in Users."); } } }

结论

通过本文,我们了解了如何在C#中使用SQLite数据库进行基本的CRUD操作。使用Microsoft.Data.Sqlite库,可以方便地创建连接、执行SQL命令以及查询和处理结果。SQLite的轻量级特性使得它非常适合嵌入式和本地存储的应用场景。希望本文对你有所帮助,欢迎你在项目中尝试使用SQLite数据库!

THE END
本站服务器由亿华云赞助提供-企业级高防云服务器