Пример #1
0
        /// <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();
            });
        }
Пример #2
0
        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();
            });
        }