Пример #1
0
        private void m_buttonTest4DBSqlite_Click(object sender, EventArgs e)
        {
            //1.创建数据库
            SQLiteUtil.createDB("testSqlite.db");
            //2.创建表
            var strCreateTableSql = @"CREATE TABLE tbl_Config 
                (ModelName TEXT,
                NodePath TEXT,
                NodeValue TEXT,
                UpdateTime DATETIME,
                PRIMARY KEY (ModelName,NodePath));";

            SQLiteUtil.createDT("tbl_Config", strCreateTableSql);
            //3.插入数据
            var strUpsertSql = "REPLACE INTO tbl_Config(ModelName,NodePath,NodeValue,UpdateTime)" +
                               "VALUES(@ModelName,@NodePath,@NodeValue,@UpdateTime)";
            Dictionary <string, object> oUpsertParams = new Dictionary <string, object>();

            oUpsertParams.Add("ModelName", "ModelName");
            oUpsertParams.Add("NodePath", "NodePath");
            oUpsertParams.Add("NodeValue", Convert.ToString("NodeValue"));
            oUpsertParams.Add("UpdateTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
            SQLiteUtil.execSQL(strUpsertSql, oUpsertParams);
            //4.查询
            var strSelectSql = "SELECT ModelName,NodePath,NodeValue,UpdateTime FROM tbl_Config " +
                               "WHERE ModelName=@ModelName AND NodePath=@NodePath";
            Dictionary <string, object> oSelectParams = new Dictionary <string, object>();

            oSelectParams.Add("ModelName", "ModelName");
            oSelectParams.Add("NodePath", "NodePath");
            DataTable dt = SQLiteUtil.execDataTable(strSelectSql, oSelectParams);

            if (dt.Rows.Count > 0)
            {
                Console.WriteLine(dt.Rows[0]["NodeValue"]);
            }

            //5.batch insert
            SQLiteUtil.execQueryTrans((oTrans) =>
            {
                for (int i = 0; i < 10; i++)
                {
                    var strBatchCreateSql = "REPLACE INTO tbl_Config(ModelName,NodePath,NodeValue,UpdateTime)" +
                                            "VALUES(@ModelName,@NodePath,@NodeValue,@UpdateTime)";
                    Dictionary <string, object> ups = new Dictionary <string, object>();
                    ups.Add("ModelName", "ModelName");
                    ups.Add("NodePath", "ModelName/NodePath" + i);
                    ups.Add("NodeValue", Convert.ToString(i));
                    ups.Add("UpdateTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
                    SQLiteUtil.execQueryTransCallBack(oTrans, strBatchCreateSql, ups);
                }
            });

            //6.batch select
            var strBatchSelectSql = "SELECT ModelName,NodePath,NodeValue,UpdateTime FROM tbl_Config " +
                                    "WHERE ModelName=@ModelName";
            Dictionary <string, object> oBatchSelectParams = new Dictionary <string, object>();

            oBatchSelectParams.Add("ModelName", "ModelName");
            DataTable dtBatch = SQLiteUtil.execDataTable(strBatchSelectSql, oBatchSelectParams);

            if (dtBatch.Rows.Count > 0)
            {
                foreach (DataRow oRows in dtBatch.Rows)
                {
                    Console.WriteLine(oRows["NodeValue"]);
                }
            }
        }