using System;
using System.Data;
using System.Data.SQLite; namespace SqliteConsoleApp
{
/// <summary>
/// SQLite 助手
/// </summary>
public sealed class SQLiteHelper
{
private const string ConnectionStr = "Data Source=recipes.s3db";
private static SQLiteHelper _instance;
private static readonly object Locker = new object (); private SQLiteHelper()
{
} /// <summary>
/// 获取实例
/// </summary>
/// <returns></returns>
public static SQLiteHelper GetInstance()
{
if (_instance == null )
{
lock (Locker)
{
if (_instance == null )
{
_instance = new SQLiteHelper ();
}
}
} return _instance;
} /// <summary>
/// 获取数据表
/// </summary>
/// <param name="cmdText"> 需要执行的命令文本 </param>
/// <returns> 一个数据表集合 </returns>
public DataTable GetDataTable( string cmdText)
{
var dt = new DataTable(); try
{
using (var conn = new SQLiteConnection (ConnectionStr))
{
conn.Open();
var cmd = new SQLiteCommand(conn) {CommandText = cmdText};
using (var reader = cmd.ExecuteReader())
{
dt.Load(reader);
}
}
}
catch (Exception e)
{
throw new Exception(e.Message);
} return dt;
} /// <summary>
/// 执行非查询命令
/// </summary>
/// <param name="cmdText"> 需要执行的命令文本 </param>
/// <returns> 返回更新的行数 </returns>
public int ExecuteNonQuery( string cmdText)
{
using (var conn = new SQLiteConnection (ConnectionStr))
{
conn.Open();
var cmd = new SQLiteCommand(conn) {CommandText = cmdText};
var rowsUpdated = cmd.ExecuteNonQuery(); return rowsUpdated;
}
} /// <summary>
/// 执行检索单项命令
/// </summary>
/// <param name="cmdText"> 需要执行的命令文本 </param>
/// <returns> 一个字符串 </returns>
public string ExecuteScalar( string cmdText)
{
using (var conn = new SQLiteConnection (ConnectionStr))
{
conn.Open();
var cmd = new SQLiteCommand(conn) {CommandText = cmdText};
var value = cmd.ExecuteScalar(); if (value != null )
{
return value.ToString();
}
} return "" ;
}
}
}

[C#] 简单的 Helper 封装 -- SQLiteHelper的更多相关文章

  1. [C#] 简单的 Helper 封装 -- RegularExpressionHelper

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  2. [C#] 简单的 Helper 封装 -- SecurityHelper 安全助手:封装加密算法(MD5、SHA、HMAC、DES、RSA)

    using System; using System.IO; using System.Security.Cryptography; using System.Text; namespace Wen. ...

  3. [C#] 简单的 Helper 封装 -- RandomHelper

    using System; namespace Wen.Helpers { /// <summary> /// 随机数助手 /// </summary> public seal ...

  4. [C#] 简单的 Helper 封装 -- CookieHelper

    using System; using System.Web; namespace ConsoleApplication5 { /// <summary> /// Cookie 助手 // ...

  5. 简单的 Helper 封装 -- CookieHelper

    using System; using System.Web; namespace ConsoleApplication5 { /// <summary> /// Cookie 助手 // ...

  6. 简单的 Helper 封装 -- SecurityHelper 安全助手:封装加密算法(MD5、SHA、HMAC、DES、RSA)

    using System; using System.IO; using System.Security.Cryptography; using System.Text; namespace Wen. ...

  7. 超简单的okHttpUtils封装(下)

      版权声明:转载请注明出处:http://blog.csdn.net/piaomiao8179 https://blog.csdn.net/piaomiao8179/article/details/ ...

  8. 简单二次封装的Golang图像处理库:图片裁剪

    简单二次封装的Golang图像处理库:图片裁剪 一.功能 Go语言下的官方图像处理库 简单封装后对jpg和png图像进行缩放/裁剪的库 二.使用说明 1.首先下载 go get -v -u githu ...

  9. 简单方便统一封装的傻瓜式GET/POST库AliasNet正式公布~开源喽~

    在进行网页自动化时我们做得最多的工作就是不停的往某个URL GET/POST数据并得到相应的Response,通过分析Response的结果再进行下一步操作,通过网页自动化我们可以做很多工作,比如去某 ...

随机推荐

  1. [原] KVM 虚拟化原理探究(1)— overview

    KVM 虚拟化原理探究- overview 标签(空格分隔): KVM 写在前面的话 本文不介绍kvm和qemu的基本安装操作,希望读者具有一定的KVM实践经验.同时希望借此系列博客,能够对KVM底层 ...

  2. ASP.NET Core 1.1.0 Release Notes

    ASP.NET Core 1.1.0 Release Notes We are pleased to announce the release of ASP.NET Core 1.1.0! Antif ...

  3. Angular企业级开发(3)-Angular MVC实现

    1.MVC介绍 Model-View-Controller 在20世纪80年代为程序语言Smalltalk发明的一种软件架构.MVC模式的目的是实现一种动态的程序设计,使后续对程序的修改和扩展简化,并 ...

  4. MAVEN学习-第一个Maven项目的构建

    MAVEN安装成功之后就可以进行项目的构建和管理了: 为什么要用maven进行项目的构建和管理? 对于初学者来说一个最直接的也是最容易里的优点在于JAR包的管理,相对于以前开发一个项目的时候我们需要用 ...

  5. 强强联合,Testin云测&云层天咨众测学院开课了!

    Testin&云层天咨众测学院开课了! 共享经济时代,测试如何赶上大潮,利用碎片时间给女票或者自己赚点化妆品钱?   2016年12月13日,Testin联手云层天咨带领大家一起推开众测的大门 ...

  6. asp.net mvc 验证码

    效果图 验证码类 namespace QJW.VerifyCode { //用法: //public FileContentResult CreateValidate() //{ // Validat ...

  7. BI分析受阻?FineBI推出SPA螺旋式分析新功能!

    过去,企业级的数据分析通常会有这么几种场景,业务部门托信息部门分析数据,结果报表一出,唇枪舌剑争论你我高低,数据不准,指标不对.信息部门欠缺业务概念,业务部门不懂技术逻辑,数据分析之路,暂时搁浅. 后 ...

  8. MySQL Workbench建表时 PK NN UQ BIN UN ZF AI 的含义

    [转自网络]https://my.oschina.net/cers/blog/292191 PK Belongs to primary key 作为主键 NN Not Null 非空 UQ Uniqu ...

  9. linux的top命令参数详解

    简介 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器. top显示系统当前的进程和其他状况,是一个动态显示过程,即可以通过用户按 ...

  10. java 泛型

    1.Student stu =tool.getObj();右边得到的是Object类型,需要向下转型,强转换. 2. 3. 4.泛型方法不能被静态修饰这样写 5.如果想定义定义静态泛型方法,只能这样写 ...