C# SQLite数据库 访问封装类

在客户端配置文件节点下,添加:

  1.  

登录后复制

其中【localdb】是本地SQLite数据库的名称,【config/local.db】是在当前程序运行目录下SQLite数据库位置

C# SQLite数据库  访问封装类代码:

  1.  ///     /// 本类为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:

  1.  ///         /// 获取数据库关键字信息        ///         /// 分类        /// 版本        ///         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)!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

点点赞赏,手留余香

给TA打赏
共0人
还没有人赞赏,快来当第一个赞赏的人吧!
    编程技术

    C# DataRow 比较

    2025-3-6 6:07:15

    编程技术

    C# 异常处理(Catch Throw)IL分析

    2025-3-6 6:07:22

    0 条回复 A文章作者 M管理员
    欢迎您,新朋友,感谢参与互动!
      暂无讨论,说说你的看法吧
    个人中心
    购物车
    优惠劵
    今日签到
    私信列表
    搜索