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中找到,具体步骤 ...
随机推荐
- Android 通用Dialog中设置RecyclerView
通用Dialog public class IOSRecyclerViewDialog{ private Context context; private Dialog dialog; private ...
- Wireshark抓包过滤
主要说明下抓包前准备工作,及wireshark里面的两个过滤器:捕获过滤器和应用显示过滤器 1.捕获过滤器.顾名思义就是捕获时的过滤器.主要用来决定你要抓包抓哪个IP哪个端口,明确自己要抓哪个IP和端 ...
- facebook atc弱网环境搭建和踩坑总结
facebook atc介绍 Augmented Traffic Control(又名atc)是一种模拟网络状况的工具.由facebook开源,是一个允许开发人员控制设备与互联网连接的项目.atc可以 ...
- js 正则 测试
var str0 = '2013-6-7()'; var AAAAADD = str0.match(/(\d)/g); //11个空字符串 //["2", "0" ...
- 谈谈网页中的ajax
一个页面上有很多的ajax请求,这样的页面右键查看源文件是没法看到全部的html.事实上,这种网页也是从正常的html页面改造过来的,常用的一个场景是,同一个区域大量循环,在动态页面里(比如jsp等) ...
- 日常记录-Pandas Cookbook
Cookbook 1.更新内容 2.关于安装 3.Pandas使用注意事项 4.包环境 5.10分钟Pandas初识 6.教程 7.Cookbook 8.数据结构简介 9.基本功能 10.使用文本数据 ...
- background及background-size
background有以下几种属性: background-color background-position background-size background-repeat background ...
- Vue学习之路第十三篇:v-for指令
v-for指令,看名字想必大家也能猜到其作用,没错,就是用来迭代.遍历的. 1.简单数组的遍历 <body> <divi id="app"> <spa ...
- webpack学习笔记(3)--webpack.config.js
module 参数 使用下面的实例来说明 module.exports = { module: { rules: [ { test: /\.css$/, use: 'css-loader' }, { ...
- rabbitMQ学习笔记(五) 消息路由
生产者会生产出很多消息 , 但是不同的消费者可能会有不同的需求,只需要接收指定的消息,其他的消息需要被过滤掉. 这时候就可以对消息进行过滤了. 在消费者端设置好需要接收的消息类型. 如果不使用默认的E ...