Sqlite 帮助类 SQLiteHelper

摘要:
///源代码下载地址:http://download.csdn.net/detail/kehaigang29/8836171///dll下载地址:http://download.csdn.net/detail/kehaigang29/8837257///&lt ; 摘要>///该类是一个SQLite数据库帮助静态类,可以在不实例化的情况下直接调用//&lt/summary>聚氨基甲酸酯
    ///源码下载地址:http://download.csdn.net/detail/kehaigang29/8836171
///dll下载地址:http://download.csdn.net/detail/kehaigang29/8837257
/// <summary> /// 本类为SQLite数据库帮助静态类,使用时只需直接调用即可,无需实例化 /// </summary> public static class SQLiteHelper { /// <summary> /// 数据库连接字符串 /// </summary> public static string connectionString = "Data Source=" + Application.StartupPath + "\" + System.Configuration.ConfigurationSettings.AppSettings["Contr"]; #region 执行数据库操作(新增、更新或删除),返回影响行数 /// <summary> /// 执行数据库操作(新增、更新或删除) /// </summary> /// <param name="cmd">SqlCommand对象</param> /// <returns>所受影响的行数</returns> public static int ExecuteNonQuery(SQLiteCommand cmd) { int result = 0; if (connectionString == null || connectionString.Length == 0) throw new ArgumentNullException("connectionString"); using (SQLiteConnection con = new SQLiteConnection(connectionString)) { SQLiteTransaction trans = null; PrepareCommand(cmd, con, ref trans, true, cmd.CommandType, cmd.CommandText); try { result = cmd.ExecuteNonQuery(); trans.Commit(); } catch (Exception ex) { trans.Rollback(); throw ex; } } return result; } /// <summary> /// 执行数据库操作(新增、更新或删除) /// </summary> /// <param name="commandText">执行语句或存储过程名</param> /// <param name="commandType">执行类型(默认语句)</param> /// <returns>所受影响的行数</returns> public static int ExecuteNonQuery(string commandText, CommandType commandType = CommandType.Text) { int result = 0; if (connectionString == null || connectionString.Length == 0) throw new ArgumentNullException("connectionString"); if (commandText == null || commandText.Length == 0) throw new ArgumentNullException("commandText"); SQLiteCommand cmd = new SQLiteCommand(); using (SQLiteConnection con = new SQLiteConnection(connectionString)) { SQLiteTransaction trans = null; PrepareCommand(cmd, con, ref trans, true, commandType, commandText); try { result = cmd.ExecuteNonQuery(); trans.Commit(); } catch (Exception ex) { trans.Rollback(); throw ex; } } return result; } /// <summary> /// 执行数据库操作(新增、更新或删除) /// </summary> /// <param name="commandText">执行语句或存储过程名</param> /// <param name="commandType">执行类型(默认语句)</param> /// <param name="cmdParms">SQL参数对象</param> /// <returns>所受影响的行数</returns> public static int ExecuteNonQuery(string commandText, CommandType commandType = CommandType.Text, params SQLiteParameter[] cmdParms) { int result = 0; if (connectionString == null || connectionString.Length == 0) throw new ArgumentNullException("connectionString"); if (commandText == null || commandText.Length == 0) throw new ArgumentNullException("commandText"); SQLiteCommand cmd = new SQLiteCommand(); using (SQLiteConnection con = new SQLiteConnection(connectionString)) { SQLiteTransaction trans = null; PrepareCommand(cmd, con, ref trans, true, commandType, commandText,cmdParms); try { result = cmd.ExecuteNonQuery(); trans.Commit(); } catch (Exception ex) { trans.Rollback(); throw ex; } } return result; } #endregion #region 执行数据库操作(新增、更新或删除)同时返回执行后查询所得的第1行第1列数据 /// <summary> /// 执行数据库操作(新增、更新或删除)同时返回执行后查询所得的第1行第1列数据 /// </summary> /// <param name="cmd">SqlCommand对象</param> /// <returns>查询所得的第1行第1列数据</returns> public static object ExecuteScalar(SQLiteCommand cmd) { object result = 0; if (connectionString == null || connectionString.Length == 0) throw new ArgumentNullException("connectionString"); using (SQLiteConnection con = new SQLiteConnection(connectionString)) { SQLiteTransaction trans = null; PrepareCommand(cmd, con, ref trans, true, cmd.CommandType, cmd.CommandText); try { result = cmd.ExecuteScalar(); trans.Commit(); } catch (Exception ex) { trans.Rollback(); throw ex; } } return result; } /// <summary> /// 执行数据库操作(新增、更新或删除)同时返回执行后查询所得的第1行第1列数据 /// </summary> /// <param name="commandText">执行语句或存储过程名</param> /// <param name="commandType">执行类型(默认语句)</param> /// <returns>查询所得的第1行第1列数据</returns> public static object ExecuteScalar(string commandText, CommandType commandType = CommandType.Text) { object result = 0; if (connectionString == null || connectionString.Length == 0) throw new ArgumentNullException("connectionString"); if (commandText == null || commandText.Length == 0) throw new ArgumentNullException("commandText"); SQLiteCommand cmd = new SQLiteCommand(); using (SQLiteConnection con = new SQLiteConnection(connectionString)) { SQLiteTransaction trans = null; PrepareCommand(cmd, con, ref trans, true, commandType, commandText); try { result = cmd.ExecuteScalar(); trans.Commit(); } catch (Exception ex) { trans.Rollback(); throw ex; } } return result; } /// <summary> /// 执行数据库操作(新增、更新或删除)同时返回执行后查询所得的第1行第1列数据 /// </summary> /// <param name="commandText">执行语句或存储过程名</param> /// <param name="commandType">执行类型(默认语句)</param> /// <param name="cmdParms">SQL参数对象</param> /// <returns>查询所得的第1行第1列数据</returns> public static object ExecuteScalar(string commandText, CommandType commandType = CommandType.Text, params SQLiteParameter[] cmdParms) { object result = 0; if (connectionString == null || connectionString.Length == 0) throw new ArgumentNullException("connectionString"); if (commandText == null || commandText.Length == 0) throw new ArgumentNullException("commandText"); SQLiteCommand cmd = new SQLiteCommand(); using (SQLiteConnection con = new SQLiteConnection(connectionString)) { SQLiteTransaction trans = null; PrepareCommand(cmd, con, ref trans, true, commandType, commandText, cmdParms); try { result = cmd.ExecuteScalar(); trans.Commit(); } catch (Exception ex) { trans.Rollback(); throw ex; } } return result; } #endregion #region 执行数据库查询,返回SqlDataReader对象 /// <summary> /// 执行数据库查询,返回SqlDataReader对象 /// </summary> /// <param name="cmd">SqlCommand对象</param> /// <returns>SqlDataReader对象</returns> public static DbDataReader ExecuteReader(SQLiteCommand cmd) { DbDataReader reader = null; if (connectionString == null || connectionString.Length == 0) throw new ArgumentNullException("connectionString"); SQLiteConnection con = new SQLiteConnection(connectionString); SQLiteTransaction trans = null; PrepareCommand(cmd, con, ref trans, false, cmd.CommandType, cmd.CommandText); try { reader = cmd.ExecuteReader(CommandBehavior.CloseConnection); } catch (Exception ex) { throw ex; } return reader; } /// <summary> /// 执行数据库查询,返回SqlDataReader对象 /// </summary> /// <param name="commandText">执行语句或存储过程名</param> /// <param name="commandType">执行类型(默认语句)</param> /// <returns>SqlDataReader对象</returns> public static DbDataReader ExecuteReader(string commandText, CommandType commandType = CommandType.Text) { DbDataReader reader = null; if (connectionString == null || connectionString.Length == 0) throw new ArgumentNullException("connectionString"); if (commandText == null || commandText.Length == 0) throw new ArgumentNullException("commandText"); SQLiteConnection con = new SQLiteConnection(connectionString); SQLiteCommand cmd = new SQLiteCommand(); SQLiteTransaction trans = null; PrepareCommand(cmd, con, ref trans, false, commandType, commandText); try { reader = cmd.ExecuteReader(CommandBehavior.CloseConnection); } catch (Exception ex) { throw ex; } return reader; } /// <summary> /// 执行数据库查询,返回SqlDataReader对象 /// </summary> /// <param name="commandText">执行语句或存储过程名</param> /// <param name="commandType">执行类型(默认语句)</param> /// <param name="cmdParms">SQL参数对象</param> /// <returns>SqlDataReader对象</returns> public static DbDataReader ExecuteReader(string commandText, CommandType commandType = CommandType.Text, params SQLiteParameter[] cmdParms) { DbDataReader reader = null; if (connectionString == null || connectionString.Length == 0) throw new ArgumentNullException("connectionString"); if (commandText == null || commandText.Length == 0) throw new ArgumentNullException("commandText"); SQLiteConnection con = new SQLiteConnection(connectionString); SQLiteCommand cmd = new SQLiteCommand(); SQLiteTransaction trans = null; PrepareCommand(cmd, con, ref trans, false, commandType, commandText, cmdParms); try { reader = cmd.ExecuteReader(CommandBehavior.CloseConnection); } catch (Exception ex) { throw ex; } return reader; } #endregion #region 执行数据库查询,返回DataSet对象 /// <summary> /// 执行数据库查询,返回DataSet对象 /// </summary> /// <param name="cmd">SqlCommand对象</param> /// <returns>DataSet对象</returns> public static DataSet ExecuteDataSet(SQLiteCommand cmd) { DataSet ds = new DataSet(); SQLiteConnection con = new SQLiteConnection(connectionString); SQLiteTransaction trans = null; PrepareCommand(cmd, con, ref trans, false, cmd.CommandType, cmd.CommandText); try { SQLiteDataAdapter sda = new SQLiteDataAdapter(cmd); sda.Fill(ds); } catch (Exception ex) { throw ex; } finally { if (cmd.Connection != null) { if (cmd.Connection.State == ConnectionState.Open) { cmd.Connection.Close(); } } } return ds; } /// <summary> /// 执行数据库查询,返回DataSet对象 /// </summary> /// <param name="commandText">执行语句或存储过程名</param> /// <param name="commandType">执行类型(默认语句)</param> /// <returns>DataSet对象</returns> public static DataSet ExecuteDataSet(string commandText, CommandType commandType = CommandType.Text) { if (connectionString == null || connectionString.Length == 0) throw new ArgumentNullException("connectionString"); if (commandText == null || commandText.Length == 0) throw new ArgumentNullException("commandText"); DataSet ds = new DataSet(); SQLiteConnection con = new SQLiteConnection(connectionString); SQLiteCommand cmd = new SQLiteCommand(); SQLiteTransaction trans = null; PrepareCommand(cmd, con, ref trans, false, commandType, commandText); try { SQLiteDataAdapter sda = new SQLiteDataAdapter(cmd); sda.Fill(ds); } catch (Exception ex) { throw ex; } finally { if (con != null) { if (con.State == ConnectionState.Open) { con.Close(); } } } return ds; } /// <summary> /// 执行数据库查询,返回DataSet对象 /// </summary> /// <param name="commandText">执行语句或存储过程名</param> /// <param name="commandType">执行类型(默认语句)</param> /// <param name="cmdParms">SQL参数对象</param> /// <returns>DataSet对象</returns> public static DataSet ExecuteDataSet(string commandText, CommandType commandType = CommandType.Text, params SQLiteParameter[] cmdParms) { if (connectionString == null || connectionString.Length == 0) throw new ArgumentNullException("connectionString"); if (commandText == null || commandText.Length == 0) throw new ArgumentNullException("commandText"); DataSet ds = new DataSet(); SQLiteConnection con = new SQLiteConnection(connectionString); SQLiteCommand cmd = new SQLiteCommand(); SQLiteTransaction trans = null; PrepareCommand(cmd, con, ref trans, false, commandType, commandText, cmdParms); try { SQLiteDataAdapter sda = new SQLiteDataAdapter(cmd); sda.Fill(ds); } catch (Exception ex) { throw ex; } finally { if (con != null) { if (con.State == ConnectionState.Open) { con.Close(); } } } return ds; } #endregion #region 执行数据库查询,返回DataTable对象 /// <summary> /// 执行数据库查询,返回DataTable对象 /// </summary> /// <param name="commandText">执行语句或存储过程名</param> /// <param name="commandType">执行类型(默认语句)</param> /// <returns>DataTable对象</returns> public static DataTable ExecuteDataTable(string commandText, CommandType commandType = CommandType.Text) { if (connectionString == null || connectionString.Length == 0) throw new ArgumentNullException("connectionString"); if (commandText == null || commandText.Length == 0) throw new ArgumentNullException("commandText"); DataTable dt = new DataTable(); SQLiteConnection con = new SQLiteConnection(connectionString); SQLiteCommand cmd = new SQLiteCommand(); SQLiteTransaction trans = null; PrepareCommand(cmd, con, ref trans, false, commandType, commandText); try { SQLiteDataAdapter sda = new SQLiteDataAdapter(cmd); sda.Fill(dt); } catch (Exception ex) { throw ex; } finally { if (con != null) { if (con.State == ConnectionState.Open) { con.Close(); } } } return dt; } #endregion #region 通用分页查询方法 /// <summary> /// 通用分页查询方法 /// </summary> /// <param name="tableName">表名</param> /// <param name="strColumns">查询字段名</param> /// <param name="strWhere">where条件</param> /// <param name="strOrder">排序条件</param> /// <param name="pageSize">每页数据数量</param> /// <param name="currentIndex">当前页数</param> /// <param name="recordOut">数据总量</param> /// <returns>DataTable数据表</returns> public static DataTable SelectPaging(string tableName, string strColumns, string strWhere, string strOrder, int pageSize, int currentIndex, out int recordOut) { DataTable dt = new DataTable(); recordOut = Convert.ToInt32(ExecuteScalar("select count(*) from " + tableName, CommandType.Text)); string pagingTemplate = "select {0} from {1} where {2} order by {3} limit {4} offset {5} "; int offsetCount = (currentIndex - 1) * pageSize; string commandText = String.Format(pagingTemplate, strColumns, tableName, strWhere, strOrder, pageSize.ToString(), offsetCount.ToString()); using (DbDataReader reader = ExecuteReader(commandText, CommandType.Text)) { if (reader != null) { dt.Load(reader); } } return dt; } #endregion #region 预处理Command对象,数据库链接,事务,需要执行的对象,参数等的初始化 /// <summary> /// 预处理Command对象,数据库链接,事务,需要执行的对象,参数等的初始化 /// </summary> /// <param name="cmd">Command对象</param> /// <param name="conn">Connection对象</param> /// <param name="trans">Transcation对象</param> /// <param name="useTrans">是否使用事务</param> /// <param name="cmdType">SQL字符串执行类型</param> /// <param name="cmdText">SQL Text</param> /// <param name="cmdParms">SQLiteParameters to use in the command</param> private static void PrepareCommand(SQLiteCommand cmd, SQLiteConnection conn, ref SQLiteTransaction trans, bool useTrans, CommandType cmdType, string cmdText, params SQLiteParameter[] cmdParms) { if (conn.State != ConnectionState.Open) conn.Open(); cmd.Connection = conn; cmd.CommandText = cmdText; if (useTrans) { trans = conn.BeginTransaction(IsolationLevel.ReadCommitted); cmd.Transaction = trans; } cmd.CommandType = cmdType; if (cmdParms != null) { foreach (SQLiteParameter parm in cmdParms) cmd.Parameters.Add(parm); } } #endregion }

免责声明:文章转载自《Sqlite 帮助类 SQLiteHelper》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Python读取PDF文档rootkit:实现隐藏进程下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

layui上传文件组件(前后端代码实现)

我个人博客系统上传特色图片功能就是用layui上传文件组件做的。另外采用某个生态框架,尽量都统一用该生态框架对应的解决方案,因为这样一来,有这么几个好处?1.统一而不杂糅,有利于制定相应的编码规范,方便维护;2.复用性高;3.不会因公司开发人员的离职而导致一时找不到人来做这件事情; 就这三点,也足以让企业降低相应的开发成本 前端代码实现: <!DOC...

json前后台传输,以及乱码中文问题探讨

背景介绍:   我现在的工作是做传统项目开发,没有用到框架。最近在做项目时,经常需要使用ajax从后台拿数据到前台,是json格式的。先说下我在项目中遇到的问题吧,前台拿到了数据,需要将其转化为对象,我使用的是jquery插件带有的jQuery.parseJSON() 这个方法,没有效果,使用浏览器自带的JSON.parse(str)也是没有效果,通过查阅...

(转)使用C#控制远程计算机的服务

在.net中提供了一些类来显示和控制Windows系统上的服务,并可以实现对远程计算机服务服务的访问,如System.ServiceProcess命名空间下面的ServiceController 类,System.Management下面的一些WMI操作的类。虽然用ServiceController可以很方便的实现对服务的控制,而且很直观、简洁和容易理解。...

android蓝牙通讯开发(详细)

新建一个工程之后,我们可以先看到界面左边的项目栏,我们可以看到,除了app目录以外,大多数的文件和目录都是自动生成的,我们也不需要对他们进行修改,而app目录之下的文件才是我们工作的重点。下面,我先对app目录下的内容进行一些讲解。 1.AndroidManifest.xml 这是整个项目的配置文件,我们在程序中定义的四大组件都需要在这里注册,另外,也可以...

Java解决关键路径问题

参考: https://www.cnblogs.com/lishanlei/p/10707808.html https://blog.csdn.net/wang379275614/article/details/13990163  关键路径问题来源于实际的生产活动,是项目管理的经典问题。 在一个复杂的项目中,整体项目的完成依赖与各个子项目的完成,而子项目...

读《Effect Java中文版》

读《Effect Java中文版》 译者序 序 前言 第1章引言 1   第2章创建和销毁对象 4 第1条:考虑用静态工厂方法代替构造函数 4 第2条:使用私有构造函数强化singleton属性 8 第3条:通过私有构造函数强化不可实例化的能力 10 第4条:避免创建重复的对象 11 第5条:消除过期的对象引用 14 第6条:避免使用终结函数 17  ...