コード例 #1
0
ファイル: MainWindow.xaml.cs プロジェクト: Kevin9567/SCMT
        // 开始解析;
        private void parseFile_Click(object sender, RoutedEventArgs e)
        {
            List <Event> le = new List <Event>();

            byte[]     bytes = { 0x06, 0xD6, 0x12, 0x09, 0x00, 0x20, 0xFF, 0xFF, 0xFF, 0x28, 0xFF, 0xF0, 0x5A, 0xC4, 0x95, 0x6C, 0x1D, 0x36, 0xE3, 0xB4, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x5C, 0x00 };
            IDbCommand sessionSqlCmd;
            DbOptions  opts = new DbOptions();

            opts.ConnStr  = DbConnSqlite.GetConnectString(DbConnProvider.DefaultSqliteDatabaseName);;
            opts.ConnType = CDLBrowser.Parser.DatabaseMgr.DbType.SQLite;
            DbConn dbconn = new DbConn(opts);
            int    ret    = dbconn.CheckDatabaseTable(typeof(Event));

            if (ret < 0)
            {
                return;
            }

            /*
             * dbconn.ExcuteNonQuery("PRAGMA synchronous = OFF");
             * dbconn.ExcuteNonQuery("PRAGMA journal_mode = MEMORY");
             */

            sessionSqlCmd = dbconn.BeginTransaction();
            string      sql    = string.Empty;
            EventParser parser = new EventParser();

            parser.Version = "1.3.06659";

            EventParserManager.Instance.AddEventParser(parser.Version, parser);
            Event newe = ParseEvent(bytes, "1.3.06659");

            le.Add(newe);
            sql = dbconn.CreateInsertSqlFromObject(typeof(Event), newe, "Event", true);
            //  dbconn.ExcuteByTrans(sql, sessionSqlCmd);

            IDbDataParameter dbparameterRaw  = null;
            IDbDataParameter dbparameterBody = null;

            dbparameterRaw  = new SQLiteParameter("@RawData", newe.RawData);
            dbparameterBody = new SQLiteParameter("@MsgBody", newe.MsgBody);

            IDbDataParameter[] paramsArray = new IDbDataParameter[2];
            paramsArray[0] = dbparameterRaw;
            paramsArray[1] = dbparameterBody;
            dbconn.ExecuteWithParamtersByTrans(sql, paramsArray, sessionSqlCmd);


            dbconn.CommitChanges(sessionSqlCmd);
            dbconn.Close();
        }