关于Sqlite的一个demo

简介: 直接上代码: class DBHelperSqlite { ILog logger = LogManager.GetLogger(System.Reflection.

 

直接上代码:

    class DBHelperSqlite
    {
        ILog logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
        private string dbName = "cmcc2.db";
        private string connectionString = "Data Source=cmcc2.db;Pooling=true;FailIfMissing=false";
        /// <summary>
        /// if the db is not exists,create it and create the table
        /// </summary>
        public DBHelperSqlite()
        {
            string SQLCreateStr = "CREATE TABLE [cmcc_businesses_info] (businessName nvarchar(50),businessDate nvarchar(10),indb_datetime nvarchar(20))";

            #region CASE2
            FileInfo fi = new FileInfo(dbName);
            if (fi.Exists == false)
            {
                logger.InfoFormat("db不存在");
                //Console.WriteLine("db不存在");
                SQLiteConnection.CreateFile(dbName);
                logger.InfoFormat("db创建完成");
                using (SQLiteConnection conn = new SQLiteConnection(connectionString))
                {
                    conn.Open();
                    using (SQLiteCommand cmd = new SQLiteCommand(SQLCreateStr, conn))
                    {
                        if (cmd.ExecuteNonQuery() > 0)
                        {
                            logger.InfoFormat("表创建成功");
                            //Console.WriteLine("表创建成功");
                        }
                    }
                }
            }
            #endregion
        }//ctor

        /// <summary>
        /// 执行多条SQL语句,实现数据库事务。
        /// </summary>
        /// <param name="SQLStringList">多条SQL语句</param>        
        public void ExecuteSqlTran(IList<string> SQLStringList)
        {
            using (SQLiteConnection conn = new SQLiteConnection(connectionString))
            {
                conn.Open();
                SQLiteCommand cmd = new SQLiteCommand();
                cmd.Connection = conn;
                SQLiteTransaction tran = conn.BeginTransaction();
                cmd.Transaction = tran;
                try
                {
                    for (int n = 0; n < SQLStringList.Count; n++)
                    {
                        string strsql = SQLStringList[n].ToString();
                        if (strsql.Trim().Length > 1)
                        {
                            cmd.CommandText = strsql;
                            cmd.ExecuteNonQuery();
                        }
                    }
                    tran.Commit();
                }
                catch (System.Data.SQLite.SQLiteException ex)
                {
                    logger.Error(ex);
                    tran.Rollback();
                    throw new Exception(ex.Message);
                }
            }
        }//trans

        /// <summary>
        /// execute sql.get the return
        /// </summary>
        /// <returns></returns>
        public IDictionary<string, string> ExecuteReader()
        {
            IDictionary<string, string> dic = new Dictionary<string, string>();
            using (SQLiteConnection conn = new SQLiteConnection(connectionString))
            {
                conn.Open();
                string SQLStr = "select businessname,max(businessDate) from cmcc_businesses_info group by businessname";
                using (SQLiteCommand cmd = new SQLiteCommand(SQLStr, conn))
                {
                    SQLiteDataReader reader = cmd.ExecuteReader();
                    while (reader.Read())
                    {
                        string key = reader.GetString(0);
                        string value = reader.GetString(1);
                        if (dic.ContainsKey(key))
                        {
                            Console.WriteLine("已存在:" + key + "\t" + value);
                        }
                        else
                        {
                            dic.Add(key, value);
                        }
                    }
                }
            }
            return dic;
        }
相关文章
|
1月前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
270 15
|
2月前
|
存储 SQL 数据库
数据库知识:了解SQLite或其他移动端数据库的使用
【10月更文挑战第22天】本文介绍了SQLite在移动应用开发中的应用,包括其优势、如何在Android中集成SQLite、基本的数据库操作(增删改查)、并发访问和事务处理等。通过示例代码,帮助开发者更好地理解和使用SQLite。此外,还提到了其他移动端数据库的选择。
59 8
|
3月前
|
Web App开发 SQL 数据库
使用 Python 解析火狐浏览器的 SQLite3 数据库
本文介绍如何使用 Python 解析火狐浏览器的 SQLite3 数据库,包括书签、历史记录和下载记录等。通过安装 Python 和 SQLite3,定位火狐数据库文件路径,编写 Python 脚本连接数据库并执行 SQL 查询,最终输出最近访问的网站历史记录。
57 4
|
3月前
|
存储 关系型数据库 数据库
轻量级数据库的利器:Python 及其内置 SQLite 简介
轻量级数据库的利器:Python 及其内置 SQLite 简介
86 3
|
3月前
|
应用服务中间件 PHP Apache
PbootCMS提示错误信息“未检测到您服务器环境的sqlite3数据库扩展...”
PbootCMS提示错误信息“未检测到您服务器环境的sqlite3数据库扩展...”
|
4月前
|
存储 API 数据库
QML使用Sqlite数据库存储ListModel数据
本文介绍了在QML中使用Sqlite数据库存储ListModel数据的方法,包括如何创建数据库、读取数据、动态添加和删除数据,以及如何在程序启动和退出时与数据库同步数据。
115 2
|
4月前
|
数据库 数据库管理
qt对sqlite数据库多线程的操作
本文总结了在Qt中进行SQLite数据库多线程操作时应注意的四个关键问题,包括数据库驱动加载、加锁、数据库的打开与关闭,以及QsqlQuery变量的使用。
280 1
|
3月前
|
存储 缓存 关系型数据库
sqlite 数据库 介绍
sqlite 数据库 介绍
74 0
|
5月前
|
人工智能 小程序 Java
【工具】轻松解锁SQLite数据库,一窥微信聊天记录小秘密
本文介绍了一款名为PyWxDump的开源工具,它可以获取微信账户信息、解密SQLite数据库以查看和备份聊天记录。此工具适用于已登录电脑版微信的用户,通过GitHub下载后简单几步即可操作。适合对数据恢复感兴趣的开发者,但请注意合法合规使用并尊重隐私。
732 2
【工具】轻松解锁SQLite数据库,一窥微信聊天记录小秘密
|
5月前
|
关系型数据库 Java MySQL
C#winform中使用SQLite数据库
C#winform中使用SQLite数据库
233 3
C#winform中使用SQLite数据库