SQLite 是一个轻量级的数据库引擎,它以其小巧的体积、高效的性能和跨平台的特点在嵌入式系统和移动应用中非常受欢迎。在 C 开发中,使用 SQLite 可以帮助开发者轻松实现高效的数据存储和访问。本...
SQLite 是一个轻量级的数据库引擎,它以其小巧的体积、高效的性能和跨平台的特点在嵌入式系统和移动应用中非常受欢迎。在 C# 开发中,使用 SQLite 可以帮助开发者轻松实现高效的数据存储和访问。本文将详细介绍如何在 C# 中使用 SQLite,包括环境搭建、数据库操作、高级特性等。
首先,需要在你的开发环境中安装 SQLite。由于 SQLite 是一个纯 C 语言库,因此可以通过 NuGet 包管理器轻松安装。在 Visual Studio 中,可以通过以下步骤安装:
Install-Package System.Data.SQLite安装完成后,需要在你的 C# 项目中添加对 System.Data.SQLite 的引用。在 Visual Studio 中,可以通过以下步骤添加:
使用 SQLite 进行数据库操作,首先需要建立与数据库的连接。以下是一个简单的示例:
using System.Data.SQLite;
class Program
{ static void Main() { string connectionString = "Data Source=mydatabase.db;Version=3;"; using (SQLiteConnection connection = new SQLiteConnection(connectionString)) { connection.Open(); // 执行数据库操作 connection.Close(); } }
}创建表是数据库操作的基础。以下是一个创建表的示例:
using System.Data.SQLite;
class Program
{ static void Main() { string connectionString = "Data Source=mydatabase.db;Version=3;"; using (SQLiteConnection connection = new SQLiteConnection(connectionString)) { connection.Open(); using (SQLiteCommand command = new SQLiteCommand("CREATE TABLE IF NOT EXISTS Users (Id INTEGER PRIMARY KEY, Name TEXT, Age INTEGER)", connection)) { command.ExecuteNonQuery(); } connection.Close(); } }
}插入数据是数据库操作的重要部分。以下是一个插入数据的示例:
using System.Data.SQLite;
class Program
{ static void Main() { string connectionString = "Data Source=mydatabase.db;Version=3;"; using (SQLiteConnection connection = new SQLiteConnection(connectionString)) { connection.Open(); using (SQLiteCommand command = new SQLiteCommand("INSERT INTO Users (Name, Age) VALUES ('张三', 20)", connection)) { command.ExecuteNonQuery(); } connection.Close(); } }
}查询数据是数据库操作的核心。以下是一个查询数据的示例:
using System.Data.SQLite;
class Program
{ static void Main() { string connectionString = "Data Source=mydatabase.db;Version=3;"; using (SQLiteConnection connection = new SQLiteConnection(connectionString)) { connection.Open(); using (SQLiteCommand command = new SQLiteCommand("SELECT * FROM Users WHERE Age > 18", connection)) { using (SQLiteDataReader reader = command.ExecuteReader()) { while (reader.Read()) { Console.WriteLine($"Id: {reader["Id"]}, Name: {reader["Name"]}, Age: {reader["Age"]}"); } } } connection.Close(); } }
}更新数据是数据库操作的重要部分。以下是一个更新数据的示例:
using System.Data.SQLite;
class Program
{ static void Main() { string connectionString = "Data Source=mydatabase.db;Version=3;"; using (SQLiteConnection connection = new SQLiteConnection(connectionString)) { connection.Open(); using (SQLiteCommand command = new SQLiteCommand("UPDATE Users SET Age = 21 WHERE Name = '张三'", connection)) { command.ExecuteNonQuery(); } connection.Close(); } }
}删除数据是数据库操作的重要部分。以下是一个删除数据的示例:
using System.Data.SQLite;
class Program
{ static void Main() { string connectionString = "Data Source=mydatabase.db;Version=3;"; using (SQLiteConnection connection = new SQLiteConnection(connectionString)) { connection.Open(); using (SQLiteCommand command = new SQLiteCommand("DELETE FROM Users WHERE Name = '张三'", connection)) { command.ExecuteNonQuery(); } connection.Close(); } }
}事务处理是数据库操作中的重要特性,可以保证数据的完整性和一致性。以下是一个事务处理的示例:
using System.Data.SQLite;
class Program
{ static void Main() { string connectionString = "Data Source=mydatabase.db;Version=3;"; using (SQLiteConnection connection = new SQLiteConnection(connectionString)) { connection.Open(); using (SQLiteTransaction transaction = connection.BeginTransaction()) { using (SQLiteCommand command = new SQLiteCommand("INSERT INTO Users (Name, Age) VALUES ('李四', 22)", connection, transaction)) { command.ExecuteNonQuery(); } using (SQLiteCommand command = new SQLiteCommand("UPDATE Users SET Age = 23 WHERE Name = '李四'", connection, transaction)) { command.ExecuteNonQuery(); } transaction.Commit(); } connection.Close(); } }
}存储过程是数据库操作的高级特性,可以将常用的数据库操作封装成函数。以下是一个存储过程的示例:
using System.Data.SQLite;
class Program
{ static void Main() { string connectionString = "Data Source=mydatabase.db;Version=3;"; using (SQLiteConnection connection = new SQLiteConnection(connectionString)) { connection.Open(); using (SQLiteCommand command = new SQLiteCommand("CREATE PROCEDURE GetUsers(IN Name TEXT) BEGIN SELECT * FROM Users WHERE Name = Name; END", connection)) { command.ExecuteNonQuery(); } using (SQLiteCommand command = new SQLiteCommand("CALL GetUsers('张三')", connection)) { using (SQLiteDataReader reader = command.ExecuteReader()) { while (reader.Read()) { Console.WriteLine($"Id: {reader["Id"]}, Name: {reader["Name"]}, Age: {reader["Age"]}"); } } } connection.Close(); } }
}通过本文的介绍,相信你已经掌握了在 C# 中使用 SQLite 进行数据库开发的基本方法和高级特性。在实际开发过程中,你可以根据自己的需求灵活运用这些知识和技巧,实现高效、稳定的数据库操作。