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); }
/// <summary> /// save /// </summary> /// <returns></returns> private async Task DoSavePet() { var sql = "UPDATE t_pet SET"; var intDictionary = new Dictionary<string, int>() { ["level"] = Level, ["needlevel"] = NeedLevel, ["aitype"] = AiType, ["life"] = Life, ["pettype"] = PetType, ["genera"] = Genera, ["enjoy"] = Enjoy, // ["strper"] = Strper, ["conper"] = Conper, ["dexper"] = Dexper, ["sprper"] = Sprper, ["iprper"] = Iprper, // ["savvy"] = Savvy, ["gengu"] = Gengu, ["growrate"] = Growrate, ["repoint"] = Repoint, ["exp"] = Exp, // ["str"] = Str, ["con"] = Con, ["dex"] = Dex, ["spr"] = Spr, ["ipr"] = Ipr, // ["charguid"] = Charguid, ["lpetguid"] = PetGuid }; var fieldNames = intDictionary.Keys.ToList(); fieldNames.Add("petname"); var updateCondition = (from fieldName in fieldNames select $"{fieldName}=@{fieldName}"); sql += " " + string.Join(", ", updateCondition) + " WHERE charguid=@charguid AND lpetguid=@lpetguid"; //构造参数 var mySqlParameters = (from intParameter in intDictionary select new MySqlParameter("@" + intParameter.Key, MySqlDbType.Int32) { Value = intParameter.Value }).ToList(); mySqlParameters.Add(new MySqlParameter("@petname", MySqlDbType.String) { Value = DbStringService.ToDbString(PetName) }); // var mySqlConnection = _mainWindowViewModel.MySqlConnection; var mySqlCommand = new MySqlCommand(sql, mySqlConnection); mySqlParameters.ForEach(mySqlParameter => mySqlCommand.Parameters.Add(mySqlParameter)); await Task.Run(async () => { var gameDbName = _mainWindowViewModel.SelectedServer.GameDbName; if (mySqlConnection.Database != gameDbName) { // 切换数据库 await mySqlConnection.ChangeDataBaseAsync(gameDbName); } await mySqlCommand.ExecuteNonQueryAsync(); }); }
private async Task DoSaveRole() { var sql = "UPDATE t_char SET"; //int类型的字段 var intDictionary = new Dictionary <string, int>() { ["charguid"] = Charguid, ["menpai"] = Menpai, ["level"] = Level, ["scene"] = Scene, ["xpos"] = Xpos, ["zpos"] = Zpos, ["hp"] = Hp, ["mp"] = Mp, ["str"] = Str, ["spr"] = Spr, ["con"] = Con, ["ipr"] = Ipr, ["dex"] = Dex, ["points"] = Points, ["enegry"] = Enegry, ["energymax"] = Energymax, ["vigor"] = Vigor, ["maxvigor"] = Maxvigor, ["exp"] = Exp, ["pkvalue"] = Pkvalue, ["vmoney"] = Vmoney, ["bankmoney"] = Bankmoney, ["yuanbao"] = Yuanbao, ["menpaipoint"] = Menpaipoint, ["zengdian"] = Zengdian }; var fieldNames = intDictionary.Keys.ToList(); fieldNames.AddRange(new[] { "accname", "charname", "title" }); // fieldA=@fieldA var updateCondition = (from fieldName in fieldNames select $"{fieldName}=@{fieldName}"); sql += " " + string.Join(", ", updateCondition) + " WHERE charguid=@charguid"; //构造参数 var mySqlParameters = (from intParameter in intDictionary select new MySqlParameter("@" + intParameter.Key, MySqlDbType.Int32) { Value = intParameter.Value }).ToList(); mySqlParameters.Add(new MySqlParameter("@accname", MySqlDbType.String) { Value = DbStringService.ToDbString(Accname) }); mySqlParameters.Add(new MySqlParameter("@charname", MySqlDbType.String) { Value = DbStringService.ToDbString(Charname) }); mySqlParameters.Add(new MySqlParameter("@title", MySqlDbType.String) { Value = DbStringService.ToDbString(Title) }); var mySqlConnection = _mainWindowViewModel.MySqlConnection; var mySqlCommand = new MySqlCommand(sql, mySqlConnection); mySqlParameters.ForEach(mySqlParameter => mySqlCommand.Parameters.Add(mySqlParameter)); await Task.Run(async() => { var gameDbName = _mainWindowViewModel.SelectedServer.GameDbName; if (mySqlConnection.Database != gameDbName) { // 切换数据库 await mySqlConnection.ChangeDataBaseAsync(gameDbName); } await mySqlCommand.ExecuteNonQueryAsync(); }); }