前言
SQLite是一款非常轻量级的关系数据库系统,以SQL为基础,并支持多数SQL92标准。由于其轻量、易用和跨平台特性而被广泛使用。使用SQLite时,通过访问数据库的程序直接从磁盘上的数据库文件进行读写操作。本文探讨如何在C#中实现操作SQLite数据库,主要通过连接数据库、执行增、删、改和查等基本操作。
实现操作
1、实现前提
在C#实现SQLite数据库操作需要引用System.Data.SQLite,我们可以通过NuGet包管理器安装引用它。
Install-Package System.Data.SQLite
SQLite是直接访问磁盘上的数据库文件,因此在执行相关操作前,需要创建好SQLite数据库文件。数据库名的后缀可以直接指定,甚至没有后缀都可以。
// 创建数据库 方式一
string dbFilename = string.Format("{0}db{1}{2}", AppDomain.CurrentDomain.BaseDirectory, Path.PathSeparator, "test.db");
if (!File.Exists(dbFilename))
{
// 创建数据库文件
FileStream fileStream = File.Create(dbFilename);
}
// 创建数据库 方式二
string dbFilename = string.Format("{0}db{1}{2}", AppDomain.CurrentDomain.BaseDirectory, Path.PathSeparator, "test.db");
if (!File.Exists(dbFilename))
{
// 创建数据库文件
SQLiteConnection.CreateFile(dbFilename);
}
2、连接数据库
下面代码段演示如何连接SQLite数据库:
// 数据库未设置密码
string connectionString =string.Format("Data Source={0}; Version=3; ",dbFilename);
// 连接数据库
using (SQLiteConnection connection = new SQLiteConnection(connectionString))
{
// 打开数据库连接
connection.Open();
}
// 数据库设置了密码
string connectionString =string.Format("Data Source={0}; Version=3; Password={1};",dbFilename,"123456");
// 连接数据库
using (SQLiteConnection connection = new SQLiteConnection(connectionString))
{
// 打开数据库连接
connection.Open();
}
3、设置数据库密码
下面代码段演示给未设置密码的数据库设置密码:
// 数据库未设置密码
string connectionString = string.Format("Data Source={0};Version=3;",dbFilename);
// 连接数据库
using (SQLiteConnection connection = new SQLiteConnection(connectionString))
{
// 打开数据库连接
connection.Open();
// 设置密码
connection.ChangePassword("123456");
}
4、创建数据表
下面代码段演示在数据库里创建数据表,如用户表:
// 数据库未设置密码
string connectionString = string.Format("Data Source={0};Version=3;",dbFilename);
// 连接数据库
using (SQLiteConnection connection = new SQLiteConnection(connectionString))
{
// 打开数据库连接
connection.Open();
// 执行SQL的语句
string commandText = "CREATE TABLE IF NOT EXISTS Users (Id INTEGER PRIMARY KEY AUTOINCREMENT, Name VARCHAR(100), Code VARCHAR(100),Password VARCHAR(100))";
// 创建 SQLiteCommand
using (SQLiteCommand command = new SQLiteCommand(commandText, connection))
{
// 执行语句
command.ExecuteNonQuery();
}
}
5、增加数据库表数据
下面代码段演示往用户表增加一行数据:
// 数据库未设置密码
string connectionString = string.Format("Data Source={0};Version=3;",dbFilename);
// 连接数据库
using (SQLiteConnection connection = new SQLiteConnection(connectionString))
{
// 打开数据库连接
connection.Open();
// 执行SQL的语句
string commandText = "insert into Users (Name, Code,Password) values (@name, @code,@password)";
// 创建 SQLiteCommand
using (SQLiteCommand command = new SQLiteCommand(commandText, connection))
{
// 设置参数值
command.Parameters.AddWithValue("@name", "管理员");
command.Parameters.AddWithValue("@code", "admin");
command.Parameters.AddWithValue("@password", "pwd123456");
// 执行语句
command.ExecuteNonQuery();
}
}
6、修改数据库表数据
下面代码段演示修改数据库表数据,如修改用户密码:
// 数据库未设置密码
string connectionString = string.Format("Data Source={0};Version=3;",dbFilename);
// 连接数据库
using (SQLiteConnection connection = new SQLiteConnection(connectionString))
{
// 打开数据库连接
connection.Open();
// 执行SQL的语句
string commandText = "update Users SET Password=@password WHERE Code = @code";
// 创建 SQLiteCommand
using (SQLiteCommand command = new SQLiteCommand(commandText, connection))
{
// 设置参数值
command.Parameters.AddWithValue("@code", "admin");
command.Parameters.AddWithValue("@password", "admin123456");
// 执行语句
command.ExecuteNonQuery();
}
}
7、查询数据库表数据
下面代码段演示查询数据库表数据,如查询用户表数据:
// 数据库未设置密码
string connectionString = string.Format("Data Source={0};Version=3;",dbFilename);
// 连接数据库
using (SQLiteConnection connection = new SQLiteConnection(connectionString))
{
// 打开数据库连接
connection.Open();
// 执行SQL的语句
string commandText = "select * from Users";
// 创建 SQLiteCommand
using (SQLiteCommand command = new SQLiteCommand(commandText, connection))
{
// 执行语句 返回查询数据
using (SQLiteDataReader reader = command.ExecuteReader())
{
// 输出数据
while (reader.Read())
{
//
Console.WriteLine($"ID: {reader["Id"]}, 名称: {reader["Name"]}, 编码: {reader["Code"]}");
}
}
}
}
8、删除数据库表数据
下面代码段演示删除数据库表数据,如删除用户表数据:
// 数据库未设置密码
string connectionString = string.Format("Data Source={0};Version=3;",dbFilename);
// 连接数据库
using (SQLiteConnection connection = new SQLiteConnection(connectionString))
{
// 打开数据库连接
connection.Open();
// 执行SQL的语句
string commandText = "delete from Users where Code = @code";
// 创建 SQLiteCommand
using (SQLiteCommand command = new SQLiteCommand(sql, connection))
{
// 设置参数值
command.Parameters.AddWithValue("@code", "admin");
// 执行语句
command.ExecuteNonQuery();
}
}
小结
通过上述示例,能够清晰地了解如何在C#中有效地操作SQLite数据库,并快速上手。可在此基础上扩展更复杂的功能,并在实际项目中运用。
该文章在 2024/12/28 12:08:16 编辑过