C#操作SQLite实现数据的增删改查

yizhihongxing

下面是详细讲解“C#操作SQLite实现数据的增删改查”的完整攻略,过程中将包含两条示例。

1. SQLite介绍

SQLite是一款开源,轻量级的关系型数据库,和其他大型数据库相比,SQLite具有占用资源少、启动快、数据存储在本地等优点。在不需要大规模并发及复杂查询的应用场景下,SQLite是一种非常合适的数据库。

2. 准备工作

在开始前,我们需要安装 SQLite 数据库和 SQLite ADO.NET provider。推荐使用 nuget 包管理器安装 SQLite 数据库的依赖包。

3. 建立数据库连接

为了使用 SQLite,我们先要建立连接。可以使用下面的代码来实例化一个 SQLiteConnection:

SQLiteConnection connection = new SQLiteConnection("Data Source=database.sqlite3");

创建SQLiteConnection类的实例对象时,需要提供数据库文件的路径或者sqlite内存数据库的名字。更多的连接字符串选项可以在SQLite连接字符串文档中查看。

打开SQLite连接,使用下面的代码:

connection.Open();

打开连接后,可以把 SQLiteDataAdapter 和 DataSet 实例化来操作 SQLite 数据库。

4. 数据库操作

4.1 数据库表的创建

SQLite 是一款 SQL 数据库,使用标准 SQL 语句可以创建表、插入记录,更新记录,删除记录等。

使用下面的代码在 SQLite 中创建一个表:

string create_sql = @"CREATE TABLE Students (
                        ID INTEGER PRIMARY KEY AUTOINCREMENT,
                        Name VARCHAR(50) NOT NULL, 
                        Age INTEGER);";
SQLiteCommand command = new SQLiteCommand(create_sql, connection);
command.ExecuteNonQuery();

这段代码创建了一个名为“Students”的表,在该表中,有一个 ID 列为主键,并且自动创建,所以我们不需要为这个列显式的插入数据,因为每一次插入数据时,SQLite engine 会为这个 ID 生成一个唯一的号码。

4.2 数据库表中添加/更新数据

SQLite 提供了插入、更新数据的语法,可以使用 ADO.NET 中的 SQLiteCommand 类来执行这些命令。

插入一条数据:

string insert_sql = "INSERT INTO Students (Name, Age) VALUES ('小明', 20);";
SQLiteCommand insert_command = new SQLiteCommand(insert_sql, connection);
int result = insert_command.ExecuteNonQuery();

在这个示例中,我们插入了一条名字为“小明”,年龄为20的数据。ExecuteNonQuery()方法返回影响的行数,也就是说如果插入成功,则返回1。

4.3 数据库读取

要从 SQLite 中读取数据,我们可以使用 SQLiteDataReader。下面是使用 SQLiteDataReader 读取刚刚插入的数据的示例:

string read_sql = "SELECT * FROM Students WHERE Name='小明';";
SQLiteCommand read_command = new SQLiteCommand(read_sql, connection);
SQLiteDataReader reader = read_command.ExecuteReader();

while (reader.Read())
{
    Console.WriteLine(reader.GetInt32(0) + " " + reader.GetString(1) + " " + reader.GetInt32(2));
}

reader.Close();

在这个示例中,我们读取了名字为“小明”的数据,并将其打印到控制台。ExecuteReader()方法返回一个 SQLiteDataReader 对象,可以读取查询结果的每一行,Read()方法将指针移动到下一行并返回一个布尔值,表示是否还有更多结果。

4.4 数据库表中数据删除

删除数据同样也可以使用 SQLiteCommand 来执行删除命令,下面是一个删除数据的示例:

string delete_sql = "DELETE FROM Students WHERE ID=1;";
SQLiteCommand delete_command = new SQLiteCommand(delete_sql, connection);
int delete_result = delete_command.ExecuteNonQuery();

在这个示例中,我们删除了 Students 表中 ID 为 1 的记录。

4.5 数据库表修改数据

修改数据同样也可以使用 SQLiteCommand 来执行修改命令,下面是一个修改数据的示例:

string update_sql = "UPDATE Students SET Age=15 WHERE Name='小明';";
SQLiteCommand update_command = new SQLiteCommand(update_sql, connection);
int update_result = update_command.ExecuteNonQuery();

在这个示例中,我们修改了 Students 表中名字为“小明”的记录的年龄为15。

5. 完整示例

下面是一个包含全部操作的完整示例:

using System;
using System.Data.SQLite;

class Program
{
    static void Main(string[] args)
    {
        SQLiteConnection connection = new SQLiteConnection("Data Source=database.sqlite3");
        connection.Open();

        string create_sql = @"CREATE TABLE Students (
                                ID INTEGER PRIMARY KEY AUTOINCREMENT,
                                Name VARCHAR(50) NOT NULL, 
                                Age INTEGER);";
        SQLiteCommand create_command = new SQLiteCommand(create_sql, connection);
        create_command.ExecuteNonQuery();

        string insert_sql = @"INSERT INTO Students (Name, Age) VALUES ('小明', 20);";
        SQLiteCommand insert_command = new SQLiteCommand(insert_sql, connection);
        int insert_result = insert_command.ExecuteNonQuery();

        string read_sql = @"SELECT * FROM Students WHERE Name='小明';";
        SQLiteCommand read_command = new SQLiteCommand(read_sql, connection);
        SQLiteDataReader reader = read_command.ExecuteReader();
        while (reader.Read())
        {
            Console.WriteLine(reader.GetInt32(0) + " " + reader.GetString(1) + " " + reader.GetInt32(2));
        }
        reader.Close();

        string delete_sql = @"DELETE FROM Students WHERE ID=1;";
        SQLiteCommand delete_command = new SQLiteCommand(delete_sql, connection);
        int delete_result = delete_command.ExecuteNonQuery();

        string update_sql = @"UPDATE Students SET Age=15 WHERE Name='小明';";
        SQLiteCommand update_command = new SQLiteCommand(update_sql, connection);
        int update_result = update_command.ExecuteNonQuery();

        connection.Close();
    }
}

在这个示例中,我们首先创建了一个名为“Students”的表,然后插入了一行数据(名字为“小明”,年龄为20),接着读取了该数据,并将其输出到控制台。然后删除了 ID 为 1(也就是我们插入的数据所在的那一行)的数据,最后将名字为“小明”的数据的年龄更新为 15。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#操作SQLite实现数据的增删改查 - Python技术站

(2)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • 在Asp.net core项目中使用WebSocket

    在 ASP.NET Core 项目中使用 WebSocket 的完整攻略 WebSocket 是一种在 Web 应用程序中实现实时通信的协议。在 ASP.NET Core 项目中使用 WebSocket 可以实现实时信的功能。下面是详细的攻略: 步骤1:创建 ASP.NET Core 项目 在 Visual Studio 中创建一个名为“WebSocketD…

    C# 2023年5月12日
    00
  • 微信扫码支付(PC端)

    当用户在PC端想要进行微信支付时,可以选择使用微信扫码支付(PC端)。本文将为大家提供一个完整的攻略,以帮助大家完成微信扫码支付(PC端)过程。 第一步:开通微信支付商户号 要进行微信扫码支付,第一步必须是开通微信支付商户号。开通商户号的步骤如下: 进入微信支付官网,使用微信号登录。 在“商户信息”菜单中,选择“账户中心”,点击“商户注册”。 根据实际情况填…

    C# 2023年5月31日
    00
  • C#中partial关键字的作用

    接下来我会详细讲解一下“C#中partial关键字的作用”。 什么是 partial 关键字 partial 是 C# 中的一个特殊关键字,用于修饰一个类、结构体、接口或方法,表示该类、结构体、接口或方法可分成多个部分进行定义。 partial 关键字的作用 使用 partial 关键字可以将一个类、结构体或接口的定义分拆到多个文件中进行定义。 这种方式的主…

    C# 2023年6月7日
    00
  • CommunityToolkit.Mvvm8.1 IOC依赖注入控制反转(5)

      本系列文章导航 https://www.cnblogs.com/aierong/p/17300066.html https://github.com/aierong/WpfDemo (自我Demo地址) 希望提到的知识对您有所提示,同时欢迎交流和指正 作者:aierong出处:https://www.cnblogs.com/aierong     说明 …

    C# 2023年4月17日
    00
  • 如何在C# 中查找或结束程序域中的主、子进程

    如何在C# 中查找或结束程序域中的主、子进程 在C#中可以使用Process类来查找、启动和结束进程。Process类封装了与操作系统进程相关的一些API,并提供了简便的方法来管理和控制进程。以下是有关如何在C#中查找或结束程序域中主、子进程的攻略: 查找主进程 首先,我们要通过获取当前进程的进程ID,来查找主进程。在C#中,可以使用 Process.Get…

    C# 2023年6月6日
    00
  • .NET Core 基于Websocket的在线聊天室实现

    .NET Core 基于 Websocket 的在线聊天室实现攻略 在 .NET Core 中,我们可以使用 Websocket 技术来实现在线聊天室。本攻略将介绍如何使用 .NET Core 实现基于 Websocket 的在线聊天室。 步骤 以下是实现基于 Websocket 的在线聊天室的步骤: 创建项目。 使用 Visual Studio 或者 .N…

    C# 2023年5月17日
    00
  • C#实现Oracle批量写入数据的方法详解

    C#实现Oracle批量写入数据的方法详解 介绍在Oracle数据库开发中,常常需要用到批量插入数据的技术,可以有效地提高数据插入的效率。本文将详细讲解如何使用C#对Oracle进行批量插入数据。 步骤以下是具体的操作步骤: 1.连接Oracle数据库在使用C#对Oracle进行批量插入数据之前,首先需要建立数据源连接。可以使用以下的代码来实现: strin…

    C# 2023年6月1日
    00
  • .Net core 的热插拔机制的深入探索及卸载问题求救指南

    .Net Core的热插拔机制是指在应用程序运行时,可以动态地添加、删除或替换程序集,而无需停止应用程序。本文将深入探索.Net Core的热插拔机制,并提供卸载问题的求救指南。 热插拔机制的实现 .Net Core的热插拔机制是通过应用程序域(AppDomain)实现的。应用程序域是一个隔离的执行环境,可以在其中加载和卸载程序集。在.Net Core中,应…

    C# 2023年5月16日
    00
合作推广
合作推广
分享本页
返回顶部