C#封装的Sqlite访问类实例

下面是详细讲解“C#封装的Sqlite访问类实例”的完整攻略。

一、Sqlite简介

Sqlite是一个轻量级的关系型数据库管理系统,它的特点是轻巧、可嵌入、可移植和高效,在单机或低并发情况下是一个非常好的选择。在C#中,我们可以使用System.Data.Sqlite命名空间提供的Sqlite连接器来访问Sqlite数据库。

二、C#封装的Sqlite访问类

为了方便使用Sqlite,我们可以封装一些工具类来操作Sqlite数据库。下面给出一个C#封装的Sqlite访问类,包含了常用的增删改查等操作。

using System.Data;
using System.Data.SQLite;

/// <summary>
/// Sqlite访问类
/// </summary>
public class SqliteHelper
{
    private SQLiteConnection sqliteConn;

    /// <summary>
    /// 构造函数 
    /// </summary>
    /// <param name="connStr">数据库连接字符串</param>
    public SqliteHelper(string connStr)
    {
        sqliteConn = new SQLiteConnection(connStr);
    }

    /// <summary>
    /// 执行查询sql,返回DataTable
    /// </summary>
    /// <param name="sql"></param>
    /// <returns></returns>
    public DataTable ExecuteQuery(string sql)
    {
        DataTable dt = new DataTable();
        try
        {
            sqliteConn.Open();
            SQLiteCommand cmd = new SQLiteCommand(sql, sqliteConn);
            SQLiteDataAdapter da = new SQLiteDataAdapter(cmd);
            da.Fill(dt);
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
        finally
        {
            sqliteConn.Close();
        }
        return dt;
    }

    /// <summary>
    /// 执行增删改sql,返回受影响的行数
    /// </summary>
    /// <param name="sql"></param>
    /// <returns></returns>
    public int ExecuteNonQuery(string sql)
    {
        int result = 0;
        try
        {
            sqliteConn.Open();
            SQLiteCommand cmd = new SQLiteCommand(sql, sqliteConn);
            result = cmd.ExecuteNonQuery();
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
        finally
        {
            sqliteConn.Close();
        }
        return result;
    }
}

三、示例说明

示例一:查询数据

下面是一个使用该封装类查询数据的示例代码。

string connStr = "Data Source=MyDatabase.sqlite;Version=3;";
SqliteHelper sqliteHelper = new SqliteHelper(connStr);
string sql = "SELECT Id, Name, Age FROM Person WHERE Age>18;";
DataTable dt = sqliteHelper.ExecuteQuery(sql);
foreach (DataRow dr in dt.Rows)
{
    Console.WriteLine(dr["Name"].ToString());
}

在该示例中,我们首先创建一个SqliteHelper对象,然后通过ExecuteQuery方法执行查询,并将返回的结果保存到DataTable中。最后,我们可以通过遍历DataTable来访问查询结果。

示例二:插入数据

下面是一个使用该封装类插入数据的示例代码。

string connStr = "Data Source=MyDatabase.sqlite;Version=3;";
SqliteHelper sqliteHelper = new SqliteHelper(connStr);
string sql = "INSERT INTO Person (Name,Age) VALUES ('张三',18);";
int result = sqliteHelper.ExecuteNonQuery(sql);
Console.WriteLine("受影响的行数:" + result);

在该示例中,我们首先创建一个SqliteHelper对象,然后通过ExecuteNonQuery方法执行插入操作,并输出受影响的行数。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#封装的Sqlite访问类实例 - Python技术站

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

相关文章

  • C#基础知识系列八const和readonly关键字详细介绍

    C#基础知识系列八:const和readonly关键字详细介绍 const和readonly的区别 在C#中,常量可以使用const和readonly关键字来定义。它们的区别在于: const定义的常量是静态编译时常量,只能在定义时赋值,不可以改变,也不需要实例化即可使用。这些常量的值必须在编译时就确定下来,也就是说,它们的值必须是编译器常量。因此,cons…

    C# 2023年5月15日
    00
  • c#基于WinForm的Socket实现简单的聊天室 IM

    下面是基于WinForm的Socket实现简单聊天室IM的完整攻略: 1. 项目开发前准备 1.1 工具准备 首先确保你已经安装了以下工具: .NET Framework(版本3.5及以上): .NET Framework是Windows应用程序开发所必需的。 1.2 环境准备 在开始聊天室开发之前,请确认以下环境已经正确配置: 计算机命名或IP地址 端口号…

    C# 2023年5月15日
    00
  • asp.net core 中的Jwt(Json Web Token)的使用详解

    ASP.NET Core 中的 JWT (Json Web Token) 的使用详解 什么是 JWT? JWT 是一种轻量级的身份验证和授权解决方案,它是为 Web 应用程序设计的,基于 JSON 形式的轻量级开放标准(RFC 7519)。 其特点在于: 可以使用一个 token 进行身份验证和授权,避免了复杂的 Sessions 或者 Cookies 的管…

    C# 2023年6月3日
    00
  • C#实现一个控制台的点餐系统

    C#实现一个控制台的点餐系统完整攻略 需求分析 点餐系统需要实现以下功能: 展示菜单 输入点餐内容和数量 确认订单及计算总价 退出程序 设计实现 数据结构 点餐系统需要用到的数据结构有: 菜品类别 Category 菜品类 Dish 菜单类 Menu 订单类 Order 具体定义如下: // 菜品类别 public enum Category { 饮料, 小…

    C# 2023年6月7日
    00
  • C#在Entity Framework中实现事务回滚

    首先,在Entity Framework中,事务回滚是通过DbContext对象的Transaction属性和SaveChanges方法来实现的。 使用Transaction属性来开启和关闭事务,SaveChanges方法来提交对数据库的更改。如果在调用SaveChanges方法之前,对DbContext对象的Transaction属性调用了BeginTra…

    C# 2023年5月15日
    00
  • AngularJS服务service用法总结

    AngularJS服务service用法总结 AngularJS是一个流行的前端框架,它提供了许多可重用的组件,包括服务(service)。服务是一个函数或对象,它可以被注入到控制器、指令等其他组件中,提供更多的功能和行为。在本文中,我们将深入探讨AngularJS中的服务(service)用法。 创建服务 要创建一个服务,我们可以使用AngularJS提供…

    C# 2023年6月1日
    00
  • C#开发中经常用的加密解密方法示例

    下面是“C#开发中经常用的加密解密方法示例”的完整攻略: 1. 加密解密方法 在C#开发中经常用到的加密解密方法有:哈希加密、对称加密和非对称加密。 哈希加密 哈希加密是指将任意长度的二进制值映射成固定长度的较小二进制值的过程,其特点是不可逆。C#中经常使用的哈希加密方法有MD5、SHA1、SHA256等。下面是一个MD5加密的示例代码: using Sys…

    C# 2023年6月7日
    00
  • ASP.NET MVC命名空间时引起错误的解决方法

    当使用ASP.NET MVC框架进行开发时,有时候会遇到命名空间冲突而引起的编译错误。本文将详细讲解如何解决命名空间冲突的问题。 引起错误的原因 在ASP.NET MVC项目中,可能会出现几个不同的类库或者插件都使用了相同的命名空间。这时候编译器就会产生冲突,无法确定要使用哪个类库或插件中的命名空间。从而导致编译失败,程序无法正常运行。 解决方法 1. 使用…

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