SQLiteHelp
using System;using System.Collections.Generic;using System.Text;using System.Data.SQLite;using System.Data;namespace MySQLiteDemo{public class SqliteHelper{private string _connectString = string.Empty;public string ConnectString{get { return _connectString; }set { _connectString = value; }}/// <summary>/// 检测/// </summary>/// <returns></returns>public static bool TestLite(string strConn){SQLiteConnection conn = new SQLiteConnection(strConn);conn.Open();if (conn.State != ConnectionState.Open){return false;}return true;}/// <summary>/// 获取数据/// </summary>/// <returns></returns>public DataTable GetData(string strSql){return GetData(strSql, null);}/// <summary>/// 获取数据/// </summary>/// <returns></returns>public DataTable GetData(string strSql, SQLiteParameter[] cmdParams){using (SQLiteConnection con = new SQLiteConnection(_connectString)){try{SQLiteCommand cmd = new SQLiteCommand(strSql, con);if (cmdParams != null){foreach (SQLiteParameter param in cmdParams){cmd.Parameters.Add(param);}}con.Open();DataTable ret = new DataTable();SQLiteDataAdapter ad = new SQLiteDataAdapter(cmd);ad.Fill(ret);return ret;}catch (SQLiteException ex){throw new Exception(ex.Message);}}}/// <summary>/// 获取SQLiteDataReader/// </summary>/// <returns></returns>public SQLiteDataReader GetReader(string strSql){return GetReader(strSql, null);}/// <summary>/// 执行带参数的查询语句,返回SQLiteDataReader ( 注意:调用该方法后,一定要对SQLiteDataReader进行Close )/// </summary>/// <param name="strSQL">查询语句</param>/// <returns>SqlDataReader</returns>public SQLiteDataReader GetReader(string strSql, params SQLiteParameter[] cmdParms){using (SQLiteConnection con = new SQLiteConnection(_connectString)){try{SQLiteCommand cmd = new SQLiteCommand(strSql, con);if (cmdParms != null){foreach (SQLiteParameter param in cmdParms){cmd.Parameters.Add(param);}}con.Open();SQLiteDataReader myReader = cmd.ExecuteReader();cmd.Parameters.Clear();return myReader;}catch (SQLiteException ex){throw new Exception(ex.Message);}}}/// <summary>/// 执行语句/// </summary>/// <param name="sql"></param>/// <returns></returns>public int ExecuteSql(string strSql){using (SQLiteConnection con = new SQLiteConnection(_connectString)){try{SQLiteCommand cmd = new SQLiteCommand(strSql, con);con.Open();return cmd.ExecuteNonQuery();}catch (SQLiteException ex){throw new Exception(ex.Message);}}}/// <summary>/// 执行语句/// </summary>/// <param name="sql"></param>/// <returns></returns>public int ExecuteSql(string strSql, SQLiteParameter[] cmdParams){using (SQLiteConnection con = new SQLiteConnection(_connectString)){try{SQLiteCommand cmd = new SQLiteCommand(strSql, con);if (cmdParams != null){foreach (SQLiteParameter param in cmdParams){cmd.Parameters.Add(param);}}con.Open();int rows = cmd.ExecuteNonQuery();cmd.Parameters.Clear();return rows;}catch (SQLiteException ex){throw new Exception(ex.Message);}}}/// <summary>/// 获取当前第一行第一列值/// </summary>/// <param name="strsql"></param>/// <param name="cmdParams"></param>/// <returns></returns>public object GetSingle(string strSql){return GetSingle(strSql, null);}/// <summary>/// 获取当前第一行第一列值/// </summary>/// <param name="strsql"></param>/// <param name="cmdParams"></param>/// <returns></returns>public object GetSingle(string strSql, SQLiteParameter[] cmdParams){using (SQLiteConnection con = new SQLiteConnection(_connectString)){try{SQLiteCommand cmd = new SQLiteCommand(strSql, con);if (cmdParams != null){foreach (SQLiteParameter param in cmdParams){cmd.Parameters.Add(param);}}con.Open();return cmd.ExecuteScalar();}catch (SQLiteException ex){throw new Exception(ex.Message);}}}/// <summary>/// 页级操作/// </summary>/// <param name="sql"></param>/// <param name="startRecord"></param>/// <param name="maxRecord"></param>/// <returns></returns>public DataTable FindByPaging(string strSql, SQLiteParameter[] cmdParams, int startRecord, int maxRecord){using (SQLiteConnection con = new SQLiteConnection(_connectString)){try{SQLiteCommand cmd = new SQLiteCommand(strSql + " LIMIT " + +startRecord + "," + maxRecord, con);if (cmdParams != null){foreach (SQLiteParameter param in cmdParams){cmd.Parameters.Add(param);}}con.Open();DataTable ret = new DataTable();SQLiteDataAdapter ad = new SQLiteDataAdapter(cmd);ad.Fill(ret);return ret;}catch (SQLiteException ex){throw new Exception(ex.Message);}}}/// <summary>/// 启用事务./// </summary>/// <param name="objTrans"></param>/// <returns></returns>public SQLiteTransaction BeginSQLTrans(){SQLiteConnection con = new SQLiteConnection(_connectString);con.Open();return con.BeginTransaction();}/// <summary>/// 执行语句/// </summary>/// <param name="strSql"></param>/// <param name="cmdParams"></param>/// <param name="trans"></param>/// <returns></returns>public int ExecuteSql(string strSql, SQLiteTransaction trans){return ExecuteSql(strSql, null, trans);}/// <summary>/// 执行语句/// </summary>/// <param name="strSql"></param>/// <param name="cmdParams"></param>/// <param name="trans"></param>/// <returns></returns>public int ExecuteSql(string strSql, SQLiteParameter[] cmdParams, SQLiteTransaction trans){int ret = 0;using (SQLiteCommand cmd = new SQLiteCommand(strSql, trans.Connection)){try{if (cmdParams != null){foreach (SQLiteParameter param in cmdParams){cmd.Parameters.Add(param);}}if (trans != null)cmd.Transaction = trans;ret = cmd.ExecuteNonQuery();}catch (SQLiteException ex){throw ex;}catch (Exception ex){throw ex;}}return ret;}}}
SQLiteHelp的更多相关文章
- [android] SQLite 数据库的升级 和 降级
public class SqliteHelp extends SQLiteOpenHelper { /* * context:创建数据库所需的 上下文对象 * name: 数据库名字 * facto ...
- 要知道的DbProviderFactory
了解DbProviderFactory 前不久想使用下EF的通用单表增删改的特性,当时使用控制台做测试,怎么弄都没成功,原因出在app.config中,反而在mvc项目中,就没有任何问题.在反复的更改 ...
- Unity3D 使用SQLite
使用Unity操作SQLite,需要用到三个库文件,分别是Mono.Data.Sqlite.dll和System.Data.dll和Sqlite3.dll,前两个库文件可以在unity中找到,具体步骤 ...
随机推荐
- 6) 十分钟学会android--Activity的生命周期之启动与销毁
当用户导航.退出和返回您的应用时,应用中的 Activity 实例将在其生命周期中转换不同状态. 例如,当您的Activity初次开始时,它将出现在系统前台并接收用户焦点. 在这个过程中,Androi ...
- vue-cli 2.0 常用命令
一.查询npm版本 npm -v 二.安装npm npm install npm g 三.安装webpack npm install webpack -g 四.安装vue命令行工具 npm insta ...
- H5动效的常见制作手法
众所周知,一个元素,动往往比静更吸引眼球: 一套操作界面,合适的动态交互反馈能给用户带来更好的操作体验: 一个H5运营宣传页,炫酷的动画特效定能助力传播和品牌打造. 近两年,小到loading动画,表 ...
- vc++如何创建程序-设置断点-函数的覆盖,c++的多态性
---恢复内容开始--- 如何设置断点小笔记 将光标移动到你想设置断点的地方,按一下F9键即可,或者你可以用鼠标左键点击小手图标. CommentOut多行注释 函数的覆盖是在父类与子类之间的,函数的 ...
- day27-2 pandas模块
目录 pandas Series(了解) DataFrame 内置方法 处理缺失值 合并数据 取值 把表格传入excel文件中 把表格从excel中取出来 高级(了解) pandas 处理表格等文件/ ...
- python之openpyxl模块
一 . Python操作EXCEL库的简介 1.1 Python官方库操作excel Python官方库一般使用xlrd库来读取Excel文件,使用xlwt库来生成Excel文件,使用xlutils库 ...
- iview datepicker 选择的时间少一天
使用iview的datepicker时间选择器发现获取的value值是比实际要少一天,严格来说应该是时间格式不一样,datepicker获取的时间是UTC时间格式,也就是:yyyy-MM-ddTHH: ...
- react实现简单倒计时
今天遇到一个简单的小功能,看网上的一些方法感觉不太适合,所以就手敲了一个,直接上代码!!! import React, { Component } from 'react'; class NoTime ...
- POJ 1061 青蛙的约会( 拓欧经典题 )
链接:传送门 思路:简单拓展欧几里德,分析后可以得到方程 x + m * t = y + n * t + L * s( s控制圈数,t代表跳t次会碰面 ),经过化简可以得到 ( n - m ) * t ...
- C语言求大数的阶乘
我们都知道如何计算一个数的阶乘,可是,如果这个数很大呢,该如何计算? 当一个数很大时,利用平常的方法是求不出来它的阶乘的,因为数据超出了范围.因此我们要用数组来求一个大数的阶乘,用数组的每位表示结果的 ...