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日

相关文章

  • asp.net程序编译调试时偶尔出现访问被拒绝的错误的解决方法

    当我们在使用asp.net程序进行编译和调试时,有时候会出现访问被拒绝的错误,这可能是由于权限设置不当或操作系统安全设置问题造成的,下面我们来讲解具体的解决方法。 一、检查应用程序池的身份验证设置 访问被拒绝的错误有时可能是由于应用程序池的身份验证设置没有正确配置造成的,我们可以通过以下步骤检查应用程序池的身份验证设置进行解决: 打开Internet Inf…

    C# 2023年5月15日
    00
  • WCF如何绑定netTcpBinding寄宿到控制台应用程序详解

    WCF如何绑定netTcpBinding寄宿到控制台应用程序详解 WCF(Windows Communication Foundation)是一种用于构建分布式应用程序的框架。它提供了一种统一的编程模型,可以使用不同的传输协议和编码方式来实现跨平台的通信。其中,netTcpBinding是一种高性能的传输协议,可以在局域网内快速传输大量数据。在本文中,我们将…

    C# 2023年5月15日
    00
  • c#.net 常用函数和方法集

    C#.NET 常用函数和方法集 C#.NET 是一种常用的编程语言,拥有丰富的函数和方法集。在本文中,我们将介绍 C#.NET 常用的函数和方法集,以供开发者在编程过程中参考。 字符串处理 字符串截取 使用 Substring 函数可以实现对字符串的截取。 string str = "Hello, World!"; string subS…

    C# 2023年5月31日
    00
  • 谈一谈autofac组件的实例范围

    当使用 Autofac IoC 容器时,我们可以定义组件实例的生命周期或范围。实例的范围决定了何时和如何依赖注入。在 Autofac 中,我们可以通过显式设置作用域或使用默认的作用域来设置组件的生命周期。 Autofac 中的五种实例范围: InstancePerDependency: 为每次依赖注入创建新的实例。 InstancePerLifetimeSc…

    C# 2023年5月15日
    00
  • Java中import导入的用法说明

    在Java中,import关键字用于导入其他类或接口的定义,以便在当前类中使用这些定义。本文将详细介绍Java中import导入的用法说明,包括静态导入和通配符导入等。 静态导入 静态导入是一种Java 5引入的新特性,它允许我们在代码中直接使用静态成员,而无需使用类名或接口名来限定。以下是一个简单的静态导入示例代码: import static java.…

    C# 2023年5月15日
    00
  • .NET CORE中使用AutoMapper进行对象映射的方法

    介绍 AutoMapper 是一款快速、简单、灵活、可自定义的对象映射库,它支持在 .NET Core 中使用。通过使用 AutoMapper,可以从一个对象把数据映射到另一个对象。 在本文中,我们将详细介绍 .NET Core 中使用 AutoMapper 进行对象映射的方法以及包含两个示例说明。 安装 为了安装 AutoMapper,我们需要使用 NuG…

    C# 2023年6月1日
    00
  • c#使用windows服务更新站点地图的详细示例

    下面是“c#使用windows服务更新站点地图的详细示例”的完整攻略,本文将由以下几部分组成:需求分析、技术选型、开发流程和实现示例。 需求分析 我们需求是实现一个使用 Windows 服务来自动更新网站地图(SiteMap)的功能。这个服务需要能够自动遍历网站,根据业务逻辑生成站点地图,并更新网站。在此基础上,我们可以选择以特定的时间间隔来调度这个服务。 …

    C# 2023年5月31日
    00
  • XUnit数据共享与并行测试

    引言 在单元或者集成测试的过程中,需要测试的用例非常多,如果测试是一条一条过,那么需要花费不少的时间。从 V2 开始,默认情况下 XUnit 自动配置并行(参考资料),大大提升了测试速度。本文将对 ASP.NET CORE WEBAPI 程序进行集成测试,并探讨 XUnit 的数据共享与测试并行的方法。 XUnit默认在一个类内的测试代码是串行执行的,而在不…

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