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); }