在客户端配置文件节点下,添加:
登录后复制
其中【localdb】是本地SQLite数据库的名称,【config/local.db】是在当前程序运行目录下SQLite数据库位置
C# SQLite数据库 访问封装类代码:
- ///
/// 本类为SQLite数据库帮助静态类,使用时只需直接调用即可,无需实例化 /// public static class SQLiteHelper { // Application.StartupPath public static string LocalDbConnectionString = ConfigurationManager.ConnectionStrings["localdb"].ConnectionString; #region ExecuteNonQuery ////// 执行数据库操作(新增、更新或删除) /// /// 连接字符串 /// SqlCommand对象 /// 所受影响的行数 public static int ExecuteNonQuery(string connectionString, 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; } ////// 执行数据库操作(新增、更新或删除) /// /// 连接字符串 /// 执行语句或存储过程名 /// 执行类型 /// 所受影响的行数 public static int ExecuteNonQuery(string connectionString, string commandText, CommandType commandType) { 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; } ////// 执行数据库操作(新增、更新或删除) /// /// 连接字符串 /// 执行语句或存储过程名 /// 执行类型 /// SQL参数对象 /// 所受影响的行数 public static int ExecuteNonQuery(string connectionString, string commandText, CommandType commandType, 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); try { result = cmd.ExecuteNonQuery(); trans.Commit(); } catch (Exception ex) { trans.Rollback(); throw ex; } } return result; } #endregion #region ExecuteScalar ////// 执行数据库操作(新增、更新或删除)同时返回执行后查询所得的第1行第1列数据 /// /// 连接字符串 /// SqlCommand对象 /// 查询所得的第1行第1列数据 public static object ExecuteScalar(string connectionString, 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; } ////// 执行数据库操作(新增、更新或删除)同时返回执行后查询所得的第1行第1列数据 /// /// 连接字符串 /// 执行语句或存储过程名 /// 执行类型 /// 查询所得的第1行第1列数据 public static object ExecuteScalar(string connectionString, string commandText, CommandType commandType) { 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; } ////// 执行数据库操作(新增、更新或删除)同时返回执行后查询所得的第1行第1列数据 /// /// 连接字符串 /// 执行语句或存储过程名 /// 执行类型 /// SQL参数对象 /// 查询所得的第1行第1列数据 public static object ExecuteScalar(string connectionString, string commandText, CommandType commandType, 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); try { result = cmd.ExecuteScalar(); trans.Commit(); } catch (Exception ex) { trans.Rollback(); throw ex; } } return result; } #endregion #region ExecuteReader ////// 执行数据库查询,返回SqlDataReader对象 /// /// 连接字符串 /// SqlCommand对象 /// SqlDataReader对象 public static DbDataReader ExecuteReader(string connectionString, 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; } ////// 执行数据库查询,返回SqlDataReader对象 /// /// 连接字符串 /// 执行语句或存储过程名 /// 执行类型 /// SqlDataReader对象 public static DbDataReader ExecuteReader(string connectionString, string commandText, CommandType commandType) { 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; } ////// 执行数据库查询,返回SqlDataReader对象 /// /// 连接字符串 /// 执行语句或存储过程名 /// 执行类型 /// SQL参数对象 /// SqlDataReader对象 public static DbDataReader ExecuteReader(string connectionString, string commandText, CommandType commandType, 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 ExecuteDataSet ////// 执行数据库查询,返回DataSet对象 /// /// 连接字符串 /// SqlCommand对象 /// DataSet对象 public static DataSet ExecuteDataSet(string connectionString, 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; } ////// 执行数据库查询,返回DataSet对象 /// /// 连接字符串 /// 执行语句或存储过程名 /// 执行类型 /// DataSet对象 public static DataSet ExecuteDataSet(string connectionString, string commandText, CommandType commandType) { 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; } ////// 执行数据库查询,返回DataSet对象 /// /// 连接字符串 /// 执行语句或存储过程名 /// 执行类型 /// SQL参数对象 /// DataSet对象 public static DataSet ExecuteDataSet(string connectionString, string commandText, CommandType commandType, 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 通用分页查询方法 ////// 通用分页查询方法 /// /// 连接字符串 /// 表名 /// 查询字段名 /// where条件 /// 排序条件 /// 每页数据数量 /// 当前页数 /// 数据总量 /// DataTable数据表 public static DataTable SelectPaging(string connString, string tableName, string strColumns, string strWhere, string strOrder, int pageSize, int currentIndex, out int recordOut) { DataTable dt = new DataTable(); recordOut = Convert.ToInt32(ExecuteScalar(connString, "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(connString, commandText, CommandType.Text)) { if (reader != null) { dt.Load(reader); } } return dt; } #endregion #region 预处理Command对象,数据库链接,事务,需要执行的对象,参数等的初始化 ////// 预处理Command对象,数据库链接,事务,需要执行的对象,参数等的初始化 /// /// Command对象 /// Connection对象 /// Transcation对象 /// 是否使用事务 /// SQL字符串执行类型 /// SQL Text /// SQLiteParameters to use in the command 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 }
登录后复制
使用demo:
- ///
/// 获取数据库关键字信息 /// /// 分类 /// 版本 /// private DataSet GetSystemDataBaseKeyWords(string category, string versions) { StringBuilder sql = new StringBuilder(); sql.Append("SELECT Keywords , Versions , Type , Description , Category , Id , Extends "); sql.Append(" FROM A_DataBaseKeyWords "); sql.AppendFormat(" WHERE 1={0} ", "1"); if (!String.IsNullOrEmpty(category)) { sql.AppendFormat(" AND Category='{0}'", category); } if (!String.IsNullOrEmpty(versions)) { sql.AppendFormat(" AND Versions='{0}'", versions); } return SQLiteHelper.ExecuteDataSet(SQLiteHelper.LocalDbConnectionString, sql.ToString(), CommandType.Text); }
登录后复制
以上就是C# SQLite数据库 访问封装类的内容,更多相关内容请关注PHP中文网(www.php.cn)!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。