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

下面是详细讲解“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日

相关文章

  • 关于Android添加fragment后版本不兼容问题

    当在一个较低的 Android 版本中使用 fragment 时,如果没有处理好版本兼容问题,可能会导致程序崩溃或出现其他不可预知的异常。对于这种问题,我们可以采取以下措施: 1. 使用 support 包 从 Android 3.0 开始,Android 框架引入了 Fragment 和 FragmentManager 等类。然而这些类仅在 Android…

    C# 2023年6月6日
    00
  • Winform下实现图片切换特效的方法

    首先我们需要明确一下,Winform是一个Windows桌面应用程序,为了实现图片切换特效,我们需要使用C#编写程序,下面是实现图片切换特效的方法: 1. 准备工作 在 Visual Studio 中创建一个 Winform 应用程序项目,然后在主窗体中添加一个 Picturebox 控件,用于展示图片切换效果。 2. 加载图片资源 为了实现图片切换特效,我…

    C# 2023年6月7日
    00
  • c# 实现康威生命游戏(细胞自动机)的示例

    下面是“C#实现康威生命游戏(细胞自动机)的示例”的完整攻略。 什么是康威生命游戏? 康威生命游戏,也叫细胞自动机,是由英国数学家康威在1970年创造的一款零玩家游戏。它是基于规则的数学模型,通过简单的规则模拟生命的演化。 康威生命游戏的细胞由像素矩阵组成,每个细胞只有两种状态:存活或死亡。它们按照一定的规律演化,并产生出各种各样的图案,如静态的花式、循环的…

    C# 2023年5月15日
    00
  • C#关于System.Collections空间详解

    C#关于System.Collections空间详解 简介 System.Collections是一个命名空间,包含一组接口和类,用于定义集合的通用构造和算法。System.Collections是C#内置的原生集合框架,相当于Java中的集合类库。在C#中,强烈推荐使用System.Collections,而不是手动编写集合算法。 术语 在学习System…

    C# 2023年5月31日
    00
  • C#创建缩略图操作类实例

    下面我将详细讲解“C# 创建缩略图操作类实例”的完整攻略。 1. 前提准备 在使用 C# 创建缩略图操作类实例之前,需要先掌握以下知识和准备工作。- 需要安装 .NET Framework 环境;- 需要掌握基础的 C# 编程知识;- 需要了解 System.Drawing 命名空间。 2. 创建缩略图操作类 以下是创建缩略图操作类的代码示例: using …

    C# 2023年6月7日
    00
  • .Net 文本框实现内容提示的实例代码(仿Google、Baidu)

    下面是详细的攻略: 思路 在.NET中,实现文本框的内容提示很简单,只需要使用TextBox和ToolTip控件即可。具体思路如下: 使用TextBox控件来创建文本框 使用ToolTip控件来创建提示框 当用户输入文本时,根据输入的内容动态更新提示框中的内容 示例说明 示例1:基本的文本框实现内容提示 以仿Google、Baidu的内容提示为例,我们可以在…

    C# 2023年5月31日
    00
  • 使用数字签名实现数据库记录防篡改(Java实现)

    使用数字签名实现数据库记录防篡改是一种常见的数据安全保护方法。以下是使用Java实现数字签名的完整攻略。 环境准备 在使用Java实现数字签名前,需要确保以下环境已经准备好: JDK已经安装并配置好了环境变量。 项目中已经添加了需要引入的包的依赖。 实现数字签名 以下是使用Java实现数字签名的步骤: 步骤1:生成密钥对 使用Java的KeyPairGene…

    C# 2023年5月15日
    00
  • c#数据绑定之向查询中添加参数(.Net连接外部数据库)

    C# 数据绑定之向查询中添加参数(.Net连接外部数据库) 在C#中,我们可以使用.NET连接外部数据库,实现数据绑定等操作。在查询数据时,有时需要向查询中添加参数,以实现更加精准的查询结果。 1. 添加数据库连接 首先,我们需要添加数据库连接,使用SqlConnection类来连接数据库。连接字符串可以通过Visual Studio中的数据源管理器来获取。…

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