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中找到,具体步骤 ...
随机推荐
- [ Java ] [ JUnit ] [ Eclipse ] coverage
官方資訊: https://www.eclemma.org/ - 簡短使用範例說明: https://dzone.com/articles/java-code-coverage-in-eclipse ...
- 【Oracle】ORA-38171: Insufficient privileges for SQL management object operation
问题: 使用SQL PLAN MANAGEMENT的时候运行下面的存储过程报错. SYS@GOOD> conn scott/tiger Connected. SCOTT@GOOD> DEC ...
- 【Oracle】审计
1.审计的功能:监控用户在database 的 action (操作) 2.审计分类: 1) session :在同一个session,相同的语句只产生一个审计结果(默认) 2) access : 在 ...
- HDFS开发中的一些问题(逐步补充)
1.windows操作系统下运行时报:Failed to locate the winutils binary in the hadoop binary path java.io.IOExcept ...
- Caffe+UbuntuKylin14.04_X64+CUDA 6.5配置
在编译Caffe的漫长过程中,经过了一个又一个坑,掉进去再爬出来,挺有趣的.对比原文有修改! LInux下配置安装:(本文档使用同一块NVIDIA显卡进行显示与计算, 如分别使用不同的显卡进行显示和计 ...
- STL:使用string、vector、complex和limits
(有少量修改!)使用到了STL的算法库: #include<algorithm> #include<vector> //属于STL库 模板库 写库的人为了和标准C和C++库区分 ...
- jQuery访问json文件(一个例子)
保存网址 打开时 点开一个类型 当点开一个类型,其他类型隐藏 回到所有类型 没有错,左下角有个这是什么样子的图标 做到了什么: 1.从json文件中取得网址,并根据访问次数排列,放到前面: 2.就是1 ...
- Nginx部署静态资源(及root与alias区别)
root目录与alias目录的区别Nginx路径location配置中,使用root目录与alias目录的区别 1)alias指定的目录是准确的,即location匹配访问的path目录下的文件直接是 ...
- mysql 与 memcache 字段名后面有空格时会产生什么问题(转)
同事下午遇到一问题,MySQL 和 Memcached 对于同一个key,不能对应起来.最终原因是:PHP将key写入MySQL数据库之前,没有经过trim()过滤首尾空格(关键是尾部空格),结果: ...
- android 异常解决方案汇总
1)异常:Android中引入第三方Jar包的方法(java.lang.NoClassDefFoundError解决办法) 1.在工程下新建lib文件夹,将需要的第三方包拷贝进来. 2.将引用的第三方 ...