首页 > 数据库 >.NET中轻松应用SQLite:零配置数据库引擎的完美指南

.NET中轻松应用SQLite:零配置数据库引擎的完美指南

时间:2024-01-14 09:44:37浏览次数:36  
标签:SQLite SQLiteCommand connection command using NET Data 数据库

 

SQLite 是一种轻量级的嵌入式数据库引擎,它在 .NET 中被广泛使用。SQLite 是一个零配置的数据库引擎,不需要服务器,可以直接在应用程序中使用。下面是一个简单的示例,演示如何在 .NET 中使用 SQLite,并提供了常见的查询、增加、修改和删除功能。

首先,你需要在项目中安装 System.Data.SQLite 包。你可以使用 NuGet 包管理器或通过 Package Manager Console 执行以下命令:

Install-Package System.Data.SQLite

接下来,创建一个 C# 文件,例如 SQLiteExample.cs,并添加以下代码:

using System;
using System.Data.SQLite;

class Program
{
    static void Main()
    {
        // 指定数据库文件路径
        string dbFilePath = "sample.db";

        // 连接字符串
        string connectionString = $"Data Source={dbFilePath};Version=3;";

        // 创建数据库连接
        using (SQLiteConnection connection = new SQLiteConnection(connectionString))
        {
            connection.Open();

            // 创建表
            CreateTable(connection);

            // 插入数据
            InsertData(connection, "John Doe", 30);

            // 查询数据
            QueryData(connection);

            // 更新数据
            UpdateData(connection, 1, "Updated Name", 35);

            // 查询更新后的数据
            QueryData(connection);

            // 删除数据
            DeleteData(connection, 1);

            // 查询删除后的数据
            QueryData(connection);
        }
    }

    static void CreateTable(SQLiteConnection connection)
    {
        using (SQLiteCommand command = new SQLiteCommand(
            "CREATE TABLE IF NOT EXISTS Users (Id INTEGER PRIMARY KEY AUTOINCREMENT, Name TEXT, Age INTEGER);", connection))
        {
            command.ExecuteNonQuery();
        }

        Console.WriteLine("Table created or already exists.");
    }

    static void InsertData(SQLiteConnection connection, string name, int age)
    {
        using (SQLiteCommand command = new SQLiteCommand(
            "INSERT INTO Users (Name, Age) VALUES (@Name, @Age);", connection))
        {
            command.Parameters.AddWithValue("@Name", name);
            command.Parameters.AddWithValue("@Age", age);

            command.ExecuteNonQuery();
        }

        Console.WriteLine("Data inserted.");
    }

    static void QueryData(SQLiteConnection connection)
    {
        using (SQLiteCommand command = new SQLiteCommand(
            "SELECT * FROM Users;", connection))
        {
            using (SQLiteDataReader reader = command.ExecuteReader())
            {
                Console.WriteLine("Id\tName\tAge");
                while (reader.Read())
                {
                    Console.WriteLine($"{reader["Id"]}\t{reader["Name"]}\t{reader["Age"]}");
                }
            }
        }
        Console.WriteLine("Data queried.");
    }

    static void UpdateData(SQLiteConnection connection, int id, string name, int age)
    {
        using (SQLiteCommand command = new SQLiteCommand(
            "UPDATE Users SET Name=@Name, Age=@Age WHERE Id=@Id;", connection))
        {
            command.Parameters.AddWithValue("@Name", name);
            command.Parameters.AddWithValue("@Age", age);
            command.Parameters.AddWithValue("@Id", id);

            command.ExecuteNonQuery();
        }

        Console.WriteLine("Data updated.");
    }

    static void DeleteData(SQLiteConnection connection, int id)
    {
        using (SQLiteCommand command = new SQLiteCommand(
            "DELETE FROM Users WHERE Id=@Id;", connection))
        {
            command.Parameters.AddWithValue("@Id", id);

            command.ExecuteNonQuery();
        }

        Console.WriteLine("Data deleted.");
    }
}

请注意,上述示例假设你已经安装了 System.Data.SQLite 包,并且在项目目录中创建了一个名为 sample.db 的 SQLite 数据库文件。在实际应用中,你需要根据自己的需求修改数据库文件路径和连接字符串。

这个示例演示了如何创建表、插入数据、查询数据、更新数据和删除数据。你可以根据具体的应用场景和需求进行修改和扩展。

 

标签:SQLite,SQLiteCommand,connection,command,using,NET,Data,数据库
From: https://www.cnblogs.com/hanbing81868164/p/17963377

相关文章

  • 如何正确使用数据库的读写分离
    背景在应用系统发展的初期,我们并不知道以后会发展成什么样的规模,所以一开始不会考虑复杂的系统架构,复杂的系统架构费时费力,开发周期长,与系统发展初期这样的一个定位是不吻合的。所以,我们都会采用简单的架构,随着业务不断的发展,访问量不断升高,我们再对系统进行架构方面的优化。架......
  • [活动(深圳)] .NET Love AI 之 .NET Conf China 2023 Party 深圳
    中国.NET社区2023年12月16日在北京成功举办了.NETConfChina2023,虽然北京飘起雪,依然挡不住想要参加活动的全国各地的.NET开发兄弟姐妹的热情。大家可以通过大会精彩照片集:https://live.photoplus.cn/live/79415183体验现场的热度。欢迎访问大会官网了解更详细的信息:https://d......
  • .Net Core 系列: 集成 Consul 实现 服务注册与健康检查
    目录什么是Consul?安装和运行ConsulAsp.NetCore如何集成Consul实现服务注册和健康检查Consul.AspNetCore中的AddConsul和AddConsulServiceRegistration方法究竟做了什么?AddConsul方法AddConsulServiceRegistration方法配置Consul检查服务封装成扩......
  • .Net Core 系列: 集成 CORS跨域配置
    .NetCore系列:集成CORS跨域配置  目录什么是CORS?Asp.NetCore种如何配置CORS?CorsPolicyBuilder类详解注册以及使用策略三种方式EnableCors和DisableCors特性关于带证书与不带证书代码的实现跨源(cross-origin)不带请求证书(Credentials)跨源(cross-origi......
  • Jmeter 如何连接mysql数据库?
    1首先安装jmeterjdbc插件JDBC驱动包下载教程:https://blog.csdn.net/qq_50896685/article/details/1291548012安装好后将插件放在lib目录ext目录下 3jmeter如何连接?首先添加一个jdbcconnectionconfigure 这里有三个字段需要配置,第一个环境变量名字,后面jdbcreques......
  • 如何通过Navicat把MySQL远程数据库导入到本地数据库
    前提:先安装好MySQL、Navicat。1.打开Navicat,新建连接,连接名由自己取,我取的是localhost,如下填写好各项信息,测试连接,连接成功。那本地数据库就建好了。2.在localhost下新建目标数据库,写好数据库名3.点击Navicat的【工具】菜单,选择【数据传输】,细心选好源库和目标库,然后按提示一......
  • Kubernetes Headless服务
    1、概述HeadlessServices是一种特殊的service,其spec:clusterIP表示为None,这样在实际运行时就不会被分配ClusterIP,也被称为无头服务,通过DNS解析提供服务发现。与普通服务不同的是HeadlessServices不提供负载均衡功能,每个Pod都有唯一的DNS记录,直接映射到其IP地址,适用于有状态应用......
  • .NET中的加密算法总结(自定义加密Helper类续)
    .NET中的加密算法总结(自定义加密Helper类续) 1.1.1摘要       相信许多人都使用过.NET提供的加密算法,而且在使用的过程我们必须了解每种加密算法的特点(对称或非对称,密钥长度和初始化向量等等)。我也看到过很多人写过.NET中加密算法总结,但我发现个别存在一些问题,很......
  • .NET 中的委托
    .NET中的委托 1.1.1 定义委托是一种引用方法的类型。一旦为委托分配了方法,委托将与该方法具有完全相同的行为。委托方法的使用可以像其他任何方法一样,具有参数和返回值,如下面的示例所示://CodeinC#publicdelegateintPerformCalculation(intx,inty);......
  • asp.net mvc4 controller构造函数
    asp.netmvc4controller构造函数ASP.NETMVC4中的Controller类有多种构造函数可供使用。以下是常见的两种构造函数示例:默认构造函数(无参):publicclassMyController:Controller{publicMyController(){}//这里为空的构造函数表示没有任何初始化操作}......