网站首页 > 技术教程 正文
在C#中,使用Microsoft.Data.Sqlite包来实现SQLite数据库的增删改查操作是一种常见做法。这个包为SQLite数据库提供了一个轻量级的、跨平台的.NET Standard兼容的数据访问库。
实现的基本步骤如下:
1. 安装Microsoft.Data.Sqlite包
首先,需要通过NuGet包管理器安装Microsoft.Data.Sqlite包。这可以通过Visual Studio的NuGet包管理器或使用包管理控制台(Package Management Console)执行以下命令来完成。
控制台命令
Install-Package Microsoft.Data.Sqlite
包管理器
2. 创建数据库连接
使用SqliteConnection类来创建与SQLite数据库的连接。如果数据库文件不存在,它会被自动创建。
引入命名空间
using Microsoft.Data.Sqlite;
连接数据库到运行目录下的mydatabase.db3数据文件
string connectionString = "Data Source=mydatabase.db3";
SqliteConnection connection = new SqliteConnection(connectionString);
3. 创建数据库和表
如果数据库或表还不存在,使用SqliteCommand来创建它们。在数据库中创建一个名为mytable的数据表,包含id,name,age三个字段,其中id为主键。
string createTableCommand = @"CREATE TABLE IF NOT EXISTS MyTable ( Id INTEGER PRIMARY KEY,Name TEXT NOT NULL,Age INTEGER)";
connection.Open();
SqliteCommand command = new SqliteCommand(createTableCommand, connection);
command.ExecuteNonQuery();
connection.Close();
4. 插入数据(Create)
使用INSERT语句向表中添加新记录。插入一行数据,name为John Doe,age为30,id为自增字段,不需要写入。注意,使用参数化查询(command.Parameters.AddWithValue),可以防止SQL注入攻击。
string insertCommand = @"INSERT INTO MyTable (Name, Age)VALUES (@Name, @Age)";
connection.Open();
command = new SqliteCommand(insertCommand, connection);
command.Parameters.AddWithValue("@Name", "John Doe");
command.Parameters.AddWithValue("@Age", 30);
command.ExecuteNonQuery();
connection.Close();
5. 查询数据(Read)
使用SELECT语句从表中检索数据。查询表中的数据时,一般正式开发是不推荐使用”*“,应列举出需要的字段。
string selectCommand = "SELECT * FROM MyTable";
connection.Open();
command = new SqliteCommand(selectCommand, connection);
SqliteDataReader reader = command.ExecuteReader();
while (reader.Read())
{
Console.WriteLine(#34;Id: {reader.GetInt32(0)}, Name: {reader.GetString(1)}, Age: {reader.GetInt32(2)}");
}
reader.Close();
connection.Close();
6. 更新数据(Update)
使用UPDATE语句更新现有记录。更新id为1的数据行,修改name为Jane Doe,age为31。
string updateCommand = @"UPDATE MyTable SET Name = @NewName, Age = @NewAge WHERE Id = @Id";
connection.Open();
command = new SqliteCommand(updateCommand, connection);
command.Parameters.AddWithValue("@NewName", "Jane Doe");
command.Parameters.AddWithValue("@NewAge", 31);
command.Parameters.AddWithValue("@Id", 1);
command.ExecuteNonQuery();
connection.Close();
7. 删除数据(Delete)
使用DELETE语句从表中删除记录。删除id为1的数据行。
string deleteCommand = "DELETE FROM MyTable WHERE Id = @Id";
connection.Open();
command = new SqliteCommand(deleteCommand, connection);
command.Parameters.AddWithValue("@Id", 1);
command.ExecuteNonQuery();
connection.Close();
在实际使用时,通常会把上述代码包装成一个独立的类,实现增删改查的操作,为整个程序提供基本的数据服务。另外,在每次操作完数据库后,需要及时关闭连接。在实际开发过程中,还需要根据具体要求,考虑使用事务来确保数据的一致性和完整性。
猜你喜欢
- 2024-11-19 C# 文字识别(OCR)
- 2024-11-19 c#手机开发Maui实现条形码扫描
- 2024-11-19 CSharp学习笔记(7)
- 2024-11-19 CSharp学习笔记(10)
- 2024-11-19 37岁辞职自学C#上位机开发通信类库第2天:进度记录
- 2024-11-19 CSharp学习笔记(16)
- 2024-11-19 python调用CSharp动态库
- 2024-11-19 C# 读取CSV文件
- 2024-11-19 CSharp学习笔记(14)
- 2024-11-19 C#委托—马工教你轻松玩转委托
你 发表评论:
欢迎- 最近发表
-
- 阿里P8大佬总结的Nacos入门笔记,从安装到进阶小白也能轻松学会
- Linux环境下,Jmeter压力测试的搭建及报错解决方法
- Java 在Word中合并单元格时删除重复值
- 解压缩软件哪个好用?4款大多数人常用的软件~
- Hadoop高可用集群搭建及API调用(hadoop3高可用)
- lombok注解@Data没有toString和getter、setter问题
- Apache Felix介绍(apache fineract)
- Spring Boot官方推荐的Docker镜像编译方式-分层jar包
- Gradle 使用手册(gradle详细教程)
- 字节二面:为什么SpringBoot的 jar可以直接运行?
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)