SQLite之C#版 System.Data.SQLite使用方法

下面是“SQLite之C#版System.Data.SQLite使用方法”的完整攻略,包含了使用方法和两条示例。

概述

SQLite 是一款轻量级的关系型数据库,不需要服务器就可以运行。而 System.Data.SQLite 则是 SQLite 的 C# 封装库,它提供了对 SQLite 数据库的访问和管理。

在本篇攻略中,我将介绍如何使用 System.Data.SQLite 操作 SQLite 数据库。包括如何安装、创建数据库、创建表、插入数据、查询数据、更新数据、删除数据等操作。

安装

首先需要安装 System.Data.SQLite 库。可以通过 NuGet 包管理器来安装:

  1. 打开 Visual Studio,打开你的项目。
  2. 在解决方案资源管理器中,右键单击项目,选择“管理 NuGet 包...”
  3. 在“NuGet 包管理器”窗口中,搜索 System.Data.SQLite。
  4. 选择 System.Data.SQLite,安装最新版本即可。

创建数据库

创建一个 SQLite 数据库,可以通过以下代码:

using System.Data.SQLite;

// 设置连接字符串
string connectionString = "Data Source=mydatabase.db;Version=3;";

// 创建空的数据库文件
SQLiteConnection.CreateFile("mydatabase.db");

// 创建连接
using (var connection = new SQLiteConnection(connectionString))
{
    // 打开连接
    connection.Open();

    // 创建表
    using (var command = new SQLiteCommand("CREATE TABLE users(id INTEGER PRIMARY KEY, name VARCHAR(50), age INTEGER);", connection))
    {
        command.ExecuteNonQuery();
    }

    // 关闭连接
    connection.Close();
}

上述代码中,我们首先设置了连接字符串,然后创建了一个空的数据库文件。接着创建连接,通过在连接上使用 SQL 命令来创建了一个名为 users 的表。最后关闭连接。

插入数据

向 SQLite 数据库中插入数据,可以通过以下代码:

using System.Data.SQLite;

// 设置连接字符串
string connectionString = "Data Source=mydatabase.db;Version=3;";

// 创建连接
using (var connection = new SQLiteConnection(connectionString))
{
    // 打开连接
    connection.Open();

    // 插入一条数据
    using (var command = new SQLiteCommand("INSERT INTO users(id, name, age) VALUES (1, '张三', 20);", connection))
    {
        command.ExecuteNonQuery();
    }

    // 关闭连接
    connection.Close();
}

上述代码中,我们首先设置了连接字符串,然后创建连接。接着在连接上使用 SQL 命令插入了一条数据,这里插入了一个名为 张三 ,年龄为 20 的人的数据。最后关闭连接。

查询数据

从 SQLite 数据库中查询数据,可以通过以下代码:

using System.Data.SQLite;

// 设置连接字符串
string connectionString = "Data Source=mydatabase.db;Version=3;";

// 创建连接
using (var connection = new SQLiteConnection(connectionString))
{
    // 打开连接
    connection.Open();

    // 查询所有数据
    using (var command = new SQLiteCommand("SELECT id, name, age FROM users;", connection))
    {
        using (var reader = command.ExecuteReader())
        {
            while (reader.Read())
            {
                int id = reader.GetInt32(0);
                string name = reader.GetString(1);
                int age = reader.GetInt32(2);

                Console.WriteLine($"id:{id},name:{name},age:{age}");
            }
        }
    }

    // 关闭连接
    connection.Close();
}

上述代码中,我们首先设置了连接字符串,然后创建连接。接着在连接上使用 SQL 命令查询了 users 表中的所有数据。使用 ExecuteReader 方法执行命令并将结果返回。然后循环遍历所有结果并打印出来。最后关闭连接。

示例

下面是一个简单的示例:

using System;
using System.Data.SQLite;

namespace SQLiteDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            // 设置连接字符串
            string connectionString = "Data Source=mydatabase.db;Version=3;";

            // 创建空的数据库文件
            SQLiteConnection.CreateFile("mydatabase.db");

            // 创建连接
            using (var connection = new SQLiteConnection(connectionString))
            {
                // 打开连接
                connection.Open();

                // 创建表
                using (var command = new SQLiteCommand("CREATE TABLE users(id INTEGER PRIMARY KEY, name VARCHAR(50), age INTEGER);", connection))
                {
                    command.ExecuteNonQuery();
                }

                // 插入一条数据
                using (var command = new SQLiteCommand("INSERT INTO users(id, name, age) VALUES (1, '张三', 20);", connection))
                {
                    command.ExecuteNonQuery();
                }

                // 查询所有数据
                using (var command = new SQLiteCommand("SELECT id, name, age FROM users;", connection))
                {
                    using (var reader = command.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            int id = reader.GetInt32(0);
                            string name = reader.GetString(1);
                            int age = reader.GetInt32(2);

                            Console.WriteLine($"id:{id},name:{name},age:{age}");
                        }
                    }
                }

                // 关闭连接
                connection.Close();
            }

            Console.ReadLine();
        }
    }
}

上述示例中,我们首先设置了连接字符串,然后创建了一个空的数据库文件。接着创建连接,通过在连接上使用 SQL 命令来创建了一个名为 users 的表。然后插入了一个名为 张三 ,年龄为 20 的人的数据。最后查询了 users 表中的所有数据,并打印出来。最终关闭连接。

另一个示例:

using System;
using System.Data.SQLite;

namespace SQLiteDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            // 设置连接字符串
            string connectionString = "Data Source=mydatabase.db;Version=3;";

            // 创建空的数据库文件
            SQLiteConnection.CreateFile("mydatabase.db");

            // 创建连接
            using (var connection = new SQLiteConnection(connectionString))
            {
                // 打开连接
                connection.Open();

                // 创建表
                using (var command = new SQLiteCommand("CREATE TABLE users(id INTEGER PRIMARY KEY, name VARCHAR(50), age INTEGER);", connection))
                {
                    command.ExecuteNonQuery();
                }

                // 插入多条数据
                using (var transaction = connection.BeginTransaction())
                {
                    for (int i = 1; i <= 10; i++)
                    {
                        using (var command = new SQLiteCommand(connection))
                        {
                            command.CommandText = "INSERT INTO users(id, name, age) VALUES (@id, @name, @age);";
                            command.Parameters.AddWithValue("@id", i);
                            command.Parameters.AddWithValue("@name", $"用户{i}");
                            command.Parameters.AddWithValue("@age", i * 10);

                            command.ExecuteNonQuery();
                        }
                    }

                    transaction.Commit();
                }

                // 查询所有数据
                using (var command = new SQLiteCommand("SELECT id, name, age FROM users;", connection))
                {
                    using (var reader = command.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            int id = reader.GetInt32(0);
                            string name = reader.GetString(1);
                            int age = reader.GetInt32(2);

                            Console.WriteLine($"id:{id},name:{name},age:{age}");
                        }
                    }
                }

                // 关闭连接
                connection.Close();
            }

            Console.ReadLine();
        }
    }
}

上述示例中,我们首先设置了连接字符串,然后创建了一个空的数据库文件。接着创建连接,通过在连接上使用 SQL 命令来创建了一个名为 users 的表。然后使用事务插入了 10 条数据。使用 BeginTransaction 开启一个事务,然后使用 ExecuteNonQuery 插入数据,并最终通过 Commit 提交事务。最后查询了 users 表中的所有数据,并打印出来。最终关闭连接。

结论

通过本攻略的介绍,我们学会了如何使用 System.Data.SQLite 来操作 SQLite 数据库。包括了创建数据库、创建表、插入数据、查询数据、更新数据、删除数据等操作。同时,我们也看到了两条使用实例。使用 System.Data.SQLite,我们可以快速的操作 SQLite 数据库,完成简单的数据存储工作。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SQLite之C#版 System.Data.SQLite使用方法 - Python技术站

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

相关文章

  • C# 基于消息发布订阅模型的示例(下)

    我来为您详细讲解一下“C# 基于消息发布订阅模型的示例(下)” 的完整攻略。 什么是消息发布订阅模型? 消息发布订阅模型是一种消息传递模式,它包含一个发布者和许多订阅者。发布者通常不知道有哪些订阅者,而订阅者则可以动态地订阅和取消订阅发布者。 消息发布订阅模型的优势 较容易增加或删除订阅者,无需修改发布者代码。 可以实现一对多的关系,即一个事件可以有多个订阅…

    C# 2023年6月1日
    00
  • asp.net core 2.0 webapi集成signalr(实例讲解)

    ASP.NET Core 2.0 WebAPI 集成 SignalR 是一种常见的实现实时通信的方式。以下是 ASP.NET Core 2.0 WebAPI 集成 SignalR 的完整攻略: 步骤一:创建 ASP.NET Core 2.0 WebAPI 应用程序 首先,需要创建一个 ASP.NET Core 2.0 WebAPI 应用程序。可以使用以下命令…

    C# 2023年5月17日
    00
  • C#独立域名查询代码

    C#独立域名查询代码的完整攻略 前言 独立域名查询是一个经常被使用的功能,即用户输入一个域名地址,程序通过查询DNS服务器返回该域名对应的IP地址。以下将介绍如何使用C#实现独立域名查询功能。 实现步骤 1. 导入命名空间 使用System.Net命名空间提供的类实现域名查询功能,需要在程序中导入该命名空间。我们可以使用下面的语句导入该命名空间: using…

    C# 2023年5月31日
    00
  • C# DataTable数据遍历优化详解

    当处理大数据量的DataTable时,常常需要考虑优化数据遍历的性能,这里将介绍一些优化技巧来提高C#的DataTable遍历速度。 1. 使用索引来提高DataTable遍历性能 使用索引是数据检索的一种高效方式。在DataTable中使用PrimaryKey,可以基于每个列的唯一值来创建索引。通过使用PrimaryKey,可以遍历DataRow的速度被大…

    C# 2023年5月31日
    00
  • 利用正则表达式抓取博客园列表数据

    下面我将为你详细讲解“利用正则表达式抓取博客园列表数据”的完整攻略。 步骤1:分析目标网站 在开始抓取之前,第一步是分析目标网站的数据结构和抓取规则。对于博客园的列表页面,我们可以先打开开发者工具,查看网页源代码,尝试找到包含所需数据的HTML元素。通过观察可以发现,每个博客园的列表项都包含在一个 div 元素里面,而博客标题、作者、所属分类等信息都分别包含…

    C# 2023年6月1日
    00
  • Unity实现苹果手机Taptic震动

    Unity实现苹果手机Taptic震动 简介 苹果手机(iOS)的Taptic Engine,是一种基于振动的触觉反馈技术,可以使用户在使用手机的过程中,通过触摸和感觉来增强用户体验。在Unity中使用Taptic Engine,可以提供更加逼真的交互体验,使用户更加沉浸其中。本文将详细讲解如何在Unity中实现苹果手机的Taptic震动。 实现步骤 步骤一…

    C# 2023年6月3日
    00
  • C#判断文件路径是否存在或者判断文件是否存在的方法

    C#中判断文件路径是否存在或者判断文件是否存在的方法,可以通过以下两种方式实现: 判断文件路径是否存在 if(Directory.Exists("D:\\exampleFolder")){ Console.WriteLine("文件夹存在"); }else{ Console.WriteLine("文件夹不存在…

    C# 2023年6月1日
    00
  • python 如何实现跳过异常继续执行

    要实现跳过异常继续执行,可以使用 Python 中的 try-except 语句。try 块中包含可能出现异常的代码,except 块则定义了在出现异常时的响应。如果出现异常,程序会跳转到 except 块继续执行。下面是一个简单的示例: try: # 可能出现异常的代码 except: # 出现异常时执行的代码 如果上面的代码中 try 块中的代码出现了异…

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