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日

相关文章

  • .net实现ping的实例代码

    首先,我们需要了解一下什么是ping,以及它在网络中的作用。 Ping是什么? 在网络中,我们可以使用Ping命令来测试网络连通性。Ping命令可以向另一台计算机发送一个数据包,然后等待该计算机返回响应。如果该计算机能够正常响应,表示网络连通正常;如果该计算机未响应,则表示网络可能存在问题。 在.NET中,我们可以使用System.Net.NetworkIn…

    C# 2023年5月31日
    00
  • UGUI ScrollRect滑动定位优化详解

    UGUI ScrollRect滑动定位优化详解 前言 UGUI ScrollRect是Unity提供的一个用于制作滚动效果的UI组件,使用它可以比较方便地实现高效的滚动效果。但是在实际使用中,我们可能会遇到滑动定位的问题,即当我们滑动到一个特定位置后,需要把这个位置对应的item定位到屏幕中央或者其他位置。这时候,我们就需要对ScrollRect进行优化。 …

    C# 2023年6月3日
    00
  • 简单介绍SQL Server中的自旋锁

    SQL Server是一种关系型数据库管理系统,其管理和保护数据的并发访问性是非常重要的。为了满足这个需求,SQL Server使用了锁机制,其中自旋锁是其中一种类型的锁。 什么是自旋锁 自旋锁是一种轻量级的锁类型,它采用了忙等待的方式来解决锁冲突,并避免了线程的上下文切换。当一个线程尝试获得自旋锁时,如果锁没有被占用,该线程会立即获得锁,并继续执行。如果锁…

    C# 2023年6月6日
    00
  • c#委托与事件(详解)

    C#委托与事件(详解) 什么是委托? 在C#中,委托是一个类,用于指向和调用一个或多个方法。可以将委托看做是方法的类型。通过委托,我们可以在运行时确定要调用哪个方法,而无需提前确定调用哪个方法。 如何定义委托? 在C#中,委托的定义非常简单,只需使用delegate关键字即可。 delegate 返回类型 委托名称(参数列表); 其中, 返回类型:委托指向方…

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

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

    C# 2023年6月3日
    00
  • C#并行编程Task类用法介绍

    标题:C#并行编程Task类用法介绍 什么是Task类? Task类是C#并行编程中最重要的类之一,它可以用来表示一个异步操作或者一组异步操作,并且可以方便地实现并行编程。 如何使用Task类? 使用Task类有以下几个基本步骤: 步骤一:定义异步任务 需要定义一个表示异步任务的委托,例如: Func<int, int> computeDeleg…

    C# 2023年5月15日
    00
  • C# 中如何利用lambda实现委托事件的挂接

    在C#中,使用Lambda表达式可以非常方便地实现委托事件的挂接。下面是详细的攻略: 理解Lambda表达式和委托事件的概念 Lambda表达式是C# 3.0引入的特性,它可以使得代码更加简洁和易读。在委托事件中,委托是一种类类型,它可以存储一系列的方法,并且可以被调用。事件是委托的一个特例,它只能被订阅,不能被直接调用。 声明委托和事件 C#中的委托和事件…

    C# 2023年6月6日
    00
  • 如何用C#创建用户自定义异常浅析

    如何用C#创建用户自定义异常浅析 什么是用户自定义异常? C#中,用户自定义异常是一种可以由程序员自己定义并抛出的异常类型。在程序中,如果发现了某个错误情况,可以通过自定义异常来更加精确地描述问题,并向上层抛出。这样,程序的处理逻辑和异常捕捉代码会变得更加简单明了。 如何创建用户自定义异常? 要创建一个用户自定义异常类型,首先需要继承自System.Exce…

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