Beispiel #1
0
        /// <summary>
        /// 加载数据
        /// </summary>
        internal void LoadData()
        {
            IsDataReady          = false;
            IsNotSuccessLoadData = false;
            IsNotFoundDatabase   = false;

            try
            {
                Config.GetConfig().GetConfigs();

                LoadSqlConn();


                bool IsDBKeyChange = false;
                bool IsUIDChange   = false;

                if (string.IsNullOrWhiteSpace(Resources.GetRes().DB_KEY))
                {
                    Resources.GetRes().DB_KEY = "".GenereteRandomCode(32, 2);
                    IsDBKeyChange = true;
                }
                if (string.IsNullOrWhiteSpace(Resources.GetRes().UID))
                {
                    Resources.GetRes().UID = "".GenereteRandomCode(32, 1);
                    IsUIDChange = true;
                }


                if (IsDBKeyChange || IsUIDChange)
                {
                    Config.GetConfig().SetConfig(Config.GetConfig().ReadConfig().GetLines().ToList());
                }


                //检查数据库文件是否存在

                if (!File.Exists(CONS_PATH))
                {
                    IsNotFoundDatabase = true;



                    DbOperator dbOperator    = new DbOperator();
                    string     adminPassword = "******";



                    adminPassword = Key.GetKeys().Encryption(adminPassword);

                    dbOperator.CreateNewDB(CONS_PATH, Resources.GetRes().DB_KEY, adminPassword);

                    IsNotFoundDatabase = false;


                    ExceptionPro.ExpInfoLog("Successflully created a new database!");
                }



                InitialConn(Resources.GetRes().DB_KEY);

#if !DEBUG
                //检查数据库文件密码是否为空
                bool IsInvalidDB = false;
                try
                {
                    using (System.Data.SQLite.SQLiteConnection _con = new System.Data.SQLite.SQLiteConnection("Data Source=" + CONS_PATH + ";Password=;"))
                    {
                        _con.Open();
                        DataTable tables = _con.GetSchema("Tables");
                        IsInvalidDB = true;
                    }
                }
                catch
                {
                    IsInvalidDB = false;
                }

                if (IsInvalidDB)
                {
                    IsNotFoundDatabase = true;
                    throw new OybabException("Invalid database!");
                }
#endif

                //备份
                Backup.Instance.BackupFile();

                //加载缓存
                LoadCache();
            }
            catch (Exception ex)
            {
                ExceptionPro.ExpLog(ex, null, false, "Exception_DatabaseLoadFailed");
            }
        }