操作类:
using System; using System.Data; using System.Text.RegularExpressions; using System.Xml; using System.IO; using System.Collections; using System.Data.SQLite; using System.Configuration;//添加.net引用 namespace Tools.Common { /// <summary> /// 对SQLite操作的类 /// 引用:System.Data.SQLite.dll【版本:3.6.23.1(原始文件名:SQlite3.DLL)】 /// </summary> public class SQLiteHelper { /// <summary> /// 所有成员函数都是静态的,构造函数定义为私有 /// </summary> private SQLiteHelper() { } /// <summary> /// 连接字符串 /// </summary> public static string ConnectionString {//"Data Source=Test.db3;Pooling=true;FailIfMissing=false"; get { ////(AppSettings节点下的"SQLiteConnectionString") string text = ConfigurationManager.AppSettings["SQLiteConnectionString"]; string str2 = ConfigurationManager.AppSettings["IsEncrypt"]; if (str2 == "true") { text = DesEncrypt.Decrypt(text); } return text; } } private static SQLiteConnection _Conn = null; /// <summary> /// 连接对象 /// </summary> public static SQLiteConnection Conn { get { if (_Conn == null) _Conn = new SQLiteConnection(ConnectionString); return SQLiteHelper._Conn; } set { SQLiteHelper._Conn = value; } } #region CreateCommand(commandText,SQLiteParameter[]) /// <summary> /// 创建命令 /// </summary> /// <param name="connection">连接</param> /// <param name="commandText">语句</param> /// <param name="commandParameters">语句参数.</param> /// <returns>SQLite Command</returns> public static SQLiteCommand CreateCommand(string commandText, params SQLiteParameter[] commandParameters) { SQLiteCommand cmd = new SQLiteCommand(commandText, Conn); if (commandParameters.Length > 0) { foreach (SQLiteParameter parm in commandParameters) cmd.Parameters.Add(parm); } return cmd; } #endregion #region CreateParameter(parameterName,parameterType,parameterValue) /// <summary> /// 创建参数 /// </summary> /// <param name="parameterName">参数名</param> /// <param name="parameterType">参数类型</param> /// <param name="parameterValue">参数值</param> /// <returns>返回创建的参数</returns> public static SQLiteParameter CreateParameter(string parameterName, System.Data.DbType parameterType, object parameterValue) { SQLiteParameter parameter = new SQLiteParameter(); parameter.DbType = parameterType; parameter.ParameterName = parameterName; parameter.Value = parameterValue; return parameter; } #endregion #region ExecuteDataSet(commandText,paramList[]) /// <summary> /// 查询数据集 /// </summary> /// <param name="cn">连接.</param> /// <param name="commandText">查询语句.</param> /// <param name="paramList">object参数列表.</param> /// <returns></returns> public static DataSet ExecuteDataSet( string commandText,params object[] paramList) { SQLiteCommand cmd = Conn.CreateCommand(); cmd.CommandText = commandText; if (paramList != null) { AttachParameters(cmd, commandText, paramList); } DataSet ds = new DataSet(); if (Conn.State == ConnectionState.Closed) Conn.Open(); SQLiteDataAdapter da = new SQLiteDataAdapter(cmd); da.Fill(ds); da.Dispose(); cmd.Dispose(); Conn.Close(); return ds; } #endregion #region ExecuteDataSet(SQLiteCommand) /// <summary> /// 查询数据集 /// </summary> /// <param name="cmd">SQLiteCommand对象</param> /// <returns>返回数据集</returns> public static DataSet ExecuteDataSet(SQLiteCommand cmd) { if (cmd.Connection.State == ConnectionState.Closed) cmd.Connection.Open(); DataSet ds = new DataSet(); SQLiteDataAdapter da = new SQLiteDataAdapter(cmd); da.Fill(ds); da.Dispose(); cmd.Connection.Close(); cmd.Dispose(); return ds; } #endregion #region ExecuteDataSet(SQLiteTransaction,commandText,params SQLiteParameter[]) /// <summary> /// 查询数据集 /// </summary> /// <param name="transaction">SQLiteTransaction对象. </param> /// <param name="commandText">查询语句.</param> /// <param name="commandParameters">命令的参数列表.</param> /// <returns>DataSet</returns> /// <remarks>必须手动执行关闭连接transaction.connection.Close</remarks> public static DataSet ExecuteDataSet(SQLiteTransaction transaction, string commandText, params SQLiteParameter[] commandParameters) { if (transaction == null) throw new ArgumentNullException("transaction"); if (transaction != null && transaction.Connection == null) throw new ArgumentException("The transaction was rolled back or committed, please provide an open transaction.", "transaction"); IDbCommand cmd = transaction.Connection.CreateCommand(); cmd.CommandText = commandText; foreach (SQLiteParameter parm in commandParameters) { cmd.Parameters.Add(parm); } if (transaction.Connection.State == ConnectionState.Closed) transaction.Connection.Open(); DataSet ds = ExecuteDataSet((SQLiteCommand)cmd); return ds; } #endregion #region ExecuteDataSet(SQLiteTransaction,commandText,object[] commandParameters) /// <summary> /// 查询数据集 /// </summary> /// <param name="transaction">SQ