private async Task <List <Pet> > DoLoadPetList()
        {
            var itemList        = new List <Pet>();
            var mySqlConnection = _mainWindowViewModel.MySqlConnection;
            var sql             = "SELECT * FROM t_pet WHERE charguid=" + _charguid
                                  + " ORDER BY aid ASC";
            var mySqlCommand = new MySqlCommand(sql, mySqlConnection);
            await Task.Run(async() =>
            {
                var gameDbName = _mainWindowViewModel.SelectedServer.GameDbName;
                if (mySqlConnection.Database != gameDbName)
                {
                    // 切换数据库
                    await mySqlConnection.ChangeDataBaseAsync(gameDbName);
                }

                using (var rd = await mySqlCommand.ExecuteReaderAsync() as MySqlDataReader)
                {
                    while (await rd.ReadAsync())
                    {
                        var itemInfo = new Pet()
                        {
                            PetGuid   = rd.GetInt32("lpetguid"),
                            Charguid  = rd.GetInt32("charguid"),
                            PetName   = DbStringService.ToCommonString(rd.GetString("petname")),
                            Level     = rd.GetInt32("level"),
                            NeedLevel = rd.GetInt32("needlevel"),
                            AiType    = rd.GetInt32("aitype"),
                            Life      = rd.GetInt32("life"),
                            PetType   = rd.GetInt32("pettype"),
                            Genera    = rd.GetInt32("genera"),
                            Enjoy     = rd.GetInt32("enjoy"),
                            Strper    = rd.GetInt32("strper"),
                            Conper    = rd.GetInt32("conper"),
                            Dexper    = rd.GetInt32("dexper"),
                            Sprper    = rd.GetInt32("sprper"),
                            Iprper    = rd.GetInt32("iprper"),
                            Savvy     = rd.GetInt32("savvy"),
                            Gengu     = rd.GetInt32("gengu"),
                            Growrate  = rd.GetInt32("growrate"),
                            Repoint   = rd.GetInt32("repoint"),
                            Exp       = rd.GetInt32("exp"),
                            Str       = rd.GetInt32("str"),
                            Con       = rd.GetInt32("con"),
                            Dex       = rd.GetInt32("dex"),
                            Spr       = rd.GetInt32("spr"),
                            Ipr       = rd.GetInt32("ipr"),
                            Skill     = rd.GetString("skill") ?? string.Empty
                        };
                        itemList.Add(itemInfo);
                    }
                }
            });

            return(itemList);
        }
        private async Task <List <ItemInfo> > DoLoadItemList()
        {
            var itemList        = new List <ItemInfo>();
            var mySqlConnection = _mainWindowViewModel.MySqlConnection;

            var(startPos, endPos) = SaveItemService.GetBagItemIndexRange(SaveItemService.BagType.MaterialBag);
            var sql =
                $"SELECT * FROM t_iteminfo WHERE charguid={_charguid}" +
                $" AND isvalid=1 AND pos>={startPos}" +
                $" AND pos<{endPos} ORDER BY pos ASC";
            var mySqlCommand = new MySqlCommand(sql, mySqlConnection);
            await Task.Run(async() =>
            {
                var gameDbName = _mainWindowViewModel.SelectedServer.GameDbName;
                if (mySqlConnection.Database != gameDbName)
                {
                    // 切换数据库
                    await mySqlConnection.ChangeDataBaseAsync(gameDbName);
                }

                var itemBases = _mainWindowViewModel.ItemBases;

                using (var rd = await mySqlCommand.ExecuteReaderAsync() as MySqlDataReader)
                {
                    while (await rd.ReadAsync())
                    {
                        var itemInfo = new ItemInfo(itemBases)
                        {
                            Charguid = rd.GetInt32("charguid"),
                            Guid     = rd.GetInt32("guid"),
                            World    = rd.GetInt32("world"),
                            Server   = rd.GetInt32("server"),
                            ItemType = rd.GetInt32("itemtype"),
                            Pos      = rd.GetInt32("pos"),
                            Creator  = DbStringService.ToCommonString(rd.GetString("creator"))
                        };
                        var pArray = new int[17];
                        for (var i = 0; i < pArray.Length; i++)
                        {
                            pArray[i] = rd.GetInt32($"p{i + 1}");
                        }

                        itemInfo.PArray = pArray;
                        itemList.Add(itemInfo);
                    }
                }
            });

            return(itemList);
        }