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

<connectionStrings><add name="localdb" connectionString="Data Source=config/local.db;Version=3;UseUTF16Encoding=True;" providerName="System.Data.SQLite.SQLiteFactory"/>
</connectionStrings>

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

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

 /// <summary>/// 本类为SQLite数据库帮助静态类,使用时只需直接调用即可,无需实例化/// </summary>public static class SQLiteHelper{// Application.StartupPathpublic static string LocalDbConnectionString = ConfigurationManager.ConnectionStrings["localdb"].ConnectionString;#region ExecuteNonQuery/// <summary>/// 执行数据库操作(新增、更新或删除)/// </summary>/// <param name="connectionString">连接字符串</param>/// <param name="cmd">SqlCommand对象</param>/// <returns>所受影响的行数</returns>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;}/// <summary>/// 执行数据库操作(新增、更新或删除)/// </summary>/// <param name="connectionString">连接字符串</param>/// <param name="commandText">执行语句或存储过程名</param>/// <param name="commandType">执行类型</param>/// <returns>所受影响的行数</returns>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;}/// <summary>/// 执行数据库操作(新增、更新或删除)/// </summary>/// <param name="connectionString">连接字符串</param>/// <param name="commandText">执行语句或存储过程名</param>/// <param name="commandType">执行类型</param>/// <param name="cmdParms">SQL参数对象</param>/// <returns>所受影响的行数</returns>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/// <summary>/// 执行数据库操作(新增、更新或删除)同时返回执行后查询所得的第1行第1列数据/// </summary>/// <param name="connectionString">连接字符串</param>/// <param name="cmd">SqlCommand对象</param>/// <returns>查询所得的第1行第1列数据</returns>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;}/// <summary>/// 执行数据库操作(新增、更新或删除)同时返回执行后查询所得的第1行第1列数据/// </summary>/// <param name="connectionString">连接字符串</param>/// <param name="commandText">执行语句或存储过程名</param>/// <param name="commandType">执行类型</param>/// <returns>查询所得的第1行第1列数据</returns>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;}/// <summary>/// 执行数据库操作(新增、更新或删除)同时返回执行后查询所得的第1行第1列数据/// </summary>/// <param name="connectionString">连接字符串</param>/// <param name="commandText">执行语句或存储过程名</param>/// <param name="commandType">执行类型</param>/// <param name="cmdParms">SQL参数对象</param>/// <returns>查询所得的第1行第1列数据</returns>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/// <summary>/// 执行数据库查询,返回SqlDataReader对象/// </summary>/// <param name="connectionString">连接字符串</param>/// <param name="cmd">SqlCommand对象</param>/// <returns>SqlDataReader对象</returns>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;}/// <summary>/// 执行数据库查询,返回SqlDataReader对象/// </summary>/// <param name="connectionString">连接字符串</param>/// <param name="commandText">执行语句或存储过程名</param>/// <param name="commandType">执行类型</param>/// <returns>SqlDataReader对象</returns>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;}/// <summary>/// 执行数据库查询,返回SqlDataReader对象/// </summary>/// <param name="connectionString">连接字符串</param>/// <param name="commandText">执行语句或存储过程名</param>/// <param name="commandType">执行类型</param>/// <param name="cmdParms">SQL参数对象</param>/// <returns>SqlDataReader对象</returns>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/// <summary>/// 执行数据库查询,返回DataSet对象/// </summary>/// <param name="connectionString">连接字符串</param>/// <param name="cmd">SqlCommand对象</param>/// <returns>DataSet对象</returns>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;}/// <summary>/// 执行数据库查询,返回DataSet对象/// </summary>/// <param name="connectionString">连接字符串</param>/// <param name="commandText">执行语句或存储过程名</param>/// <param name="commandType">执行类型</param>/// <returns>DataSet对象</returns>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;}/// <summary>/// 执行数据库查询,返回DataSet对象/// </summary>/// <param name="connectionString">连接字符串</param>/// <param name="commandText">执行语句或存储过程名</param>/// <param name="commandType">执行类型</param>/// <param name="cmdParms">SQL参数对象</param>/// <returns>DataSet对象</returns>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 通用分页查询方法/// <summary>/// 通用分页查询方法/// </summary>/// <param name="connString">连接字符串</param>/// <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 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对象,数据库链接,事务,需要执行的对象,参数等的初始化/// <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}

使用demo:

 /// <summary>/// 获取数据库关键字信息/// </summary>/// <param name="category">分类</param>/// <param name="versions">版本</param>/// <returns></returns>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);}

小注:

为了屏蔽32与64位系统问题,请使用改SQLite的dll,下载地址:点击打开链接

作者:jiankunking 出处:http://blog.csdn.net/jiankunking

C# SQLite数据库 访问封装类相关推荐

  1. Poco库使用:操作SQLite数据库

    Sqlite是在工程项目中使用比较多的小型数据库.由于其非常小巧且占用资源低,深受开发者喜欢.这里就介绍一下如何通过Poco框架操作SQLite数据库.这里假设你已经完整编译了Poco库,如果还没有编 ...

  2. android与mysql数据库同步_android开发 如何通过web服务器访问MYSQL数据库并且使其数据同步到android SQLite数据库?...

    通过web服务器访问MYSQL数据库有以下几个过程: 1.在MySql下创建自己的数据库和自己的表单 2.连接数据库. 3.访问数据库 1.创建web工程 (服务器端) 在Myeclipse下新建一个 ...

  3. Xamarin SQLite教程数据库访问与生成

    Xamarin SQLite教程数据库访问与生成 在本教程中,我们将讲解如何开发SQLite相关的App.在编写程序前,首先需要做一些准备工作,如了解Xamarin数据库访问方式,添加引用,构建使用库 ...

  4. sqlite数据库的多线程访问问题

    关于sqlite数据库的多线程访问问题,下面的链接提供了一个详细的说明: http://kagii.com/post/6828016869/android-sqlite-locking

  5. android中访问手机存储空间,android – 访问手机内部存储以推入SQLite数据库文件...

    我正在使用Netbeans和java开发我的android应用程序.当我使用模拟器时,我可以通过访问以下路径,data / data / com.example.helloandroid / data ...

  6. android sqlite 操作类封装,[Android] Sqlite 数据库操做 工具封装类

    sqlite 数据库封装类html DatabaseUtil.java(封装的类)java packagecom.jack.androidbase.tools;importandroid.conten ...

  7. AliasDB:简单统一灵活的数据库访问库(支持MSSQL/MySQL/SQLite/Oracle/ODBC/OleDb)适用于中小型系统...

    数据库访问各种规模的应用程序不可避免的操作,.NET对提供了简单方便统一的数据库访问类,并且通过Enterprise Lib提供了更为顶层的数据库访问库.在我的人个工作中,现在用得最多的就是通过&qu ...

  8. Qt5 开发 iOS 应用之访问 SQLite 数据库

    开发环境: macOS 10.12.1 Xcode 8.1 Qt 5.8 iPhone 6S+iOS 10.1.1 源代码: 我在 Qt 程序里指定了数据库的名称来创建数据库,在 Win10.Andr ...

  9. 数据存储与访问之——初见SQLite数据库

    本节引言: 本节我们继续来学习Android数据存储与访问的第三种方式:SQLite数据库,和其他的SQL数据库不同, 我们并不需要在手机上另外安装一个数据库软件,Android系统已经集成了这个数据 ...

最新文章

  1. 常见浏览器兼容问题、盒模型2种模式以及css hack知识讲解
  2. 注意ajax的同步和异步请求
  3. 构造方法和方法的重载。
  4. 白鹭引擎开发飞机大战详尽教程(四控制飞机移动)
  5. php+mkdate,PHP时间工具种
  6. Android系统(134)--- Android关于OOM的解决方案 ##OOM
  7. Emacs里一些古老的术语
  8. 如何使用损坏或删除SQL Server事务日志文件重建数据库
  9. 无法启用iPhone、iPhone 启用错误?用Tenorshare ReiBoot 及 4MeKey 解决
  10. 字符串,字典,元祖,列表
  11. 签到系统、评价系统、后台审核系统前后端接口实现总结
  12. xcode9 免证书调试
  13. MATLAB中的FFT函数以及频谱泄露
  14. 苹果mac隐藏文件夹怎么显示?
  15. 元宇宙专题001 | 他们居然将元宇宙和心理学写到一起了
  16. mysql 1114错误_mysql – ERROR 1114(HY000):表’XXX’已满
  17. python3 zip命令_Python调用zip命令正确操作方法解析
  18. N76E003AT20筋膜枪单片机设计方案
  19. 用UDP实现简易的聊天室
  20. IBMX3650M4服务器_安装内存_内存顺序

热门文章

  1. python rpc 性能比较_Python与RPC -- (转)
  2. java 网线串口开发_C++标准语言不断被开发,C++却走向了下坡路!
  3. 家用电器用户行为分析与事件识别_用户行为分析系统
  4. matlab 绘图2
  5. 数字集成电路的层次关系
  6. 【 MATLAB 】常用的离散时间序列的 Matlab 产生
  7. 正交频分复用(OFDM)初步(原理)
  8. 字典创建列表的2种方法,作业
  9. Hadoop(十)Hadoop IO之数据完整性
  10. cocos2d中CCAnimation的使用(cocos2d 1.0以上版本)