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数据库!
文章转载自后端Q,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




