Beispiel #1
0
		public MySqlCommand() {
			this.designTimeVisible = true;
			this.cmdType = System.Data.CommandType.Text;
			this.parameters = new MySqlParameterCollection( this );
			this.updatedRowSource = UpdateRowSource.Both;
			this.cursorPageSize = 0;
			this.cmdText = string.Empty;
			this.timedOut = false;
		}
        /// <summary>
        /// Inserts Or Update Existing Character Into your current Login Server MySql DataBase.
        /// </summary>
        /// <param name="character">Your Character Which you want Insert(If Not Exist) Or Update(If Exist)</param>
        public static void InsertOrUpdate(Character character)
        {
            MySqlConnection con = new MySqlConnection(Settings.Default.DataBaseConnectionString);

            try
            {
                con.Open();
                MySqlCommand command = null;
                if (m_DbCharacters.Contains(character))
                {
                    command = new MySqlCommand(
                        "UPDATE `characters` SET `id` = @id, `accountid` = @accountid, `worldid` = @worldid, `type` = @type, `charname` = @charname, `charrace` = @charrace, `chargender` = @chargender, `guid` = @guid, `v` = @v" +
                        "WHERE `acharname` = @charname",
                        con);
                }
                else
                {
                    command = new MySqlCommand(
                        "INSERT INTO `characters`(id, accountid, worldid, type,  type, charname, charrace, chargender, guid, v)" +
                        "VALUES(@id, @accountid, @worldid, @type, @type, @charname, @charrace, @chargender, @guid, @v)",
                        con);
                }
                MySqlParameterCollection parameters = command.Parameters;
                parameters.Add("@id", MySqlDbType.Int64).Value        = character.Id;
                parameters.Add("@accountid", MySqlDbType.Int64).Value = character.AccountId;
                parameters.Add("@worldid", MySqlDbType.Byte).Value    = character.WorldId;
                parameters.Add("@type", MySqlDbType.Int32).Value      = character.Type;
                parameters.Add("@charname", MySqlDbType.String).Value = character.CharName;
                parameters.Add("@charrace", MySqlDbType.Byte).Value   = character.CharRace;
                parameters.Add("@chargender", MySqlDbType.Byte).Value = character.CharGender;
                parameters.Add("@token", MySqlDbType.String).Value    = character.GUID;
                parameters.Add("@v", MySqlDbType.Int64).Value         = character.V;

                if (m_DbCharacters.Contains(character))
                {
                    parameters.Add("@acharname", MySqlDbType.Int64).Value = character.CharName;
                }

                command.ExecuteNonQuery();
                command = null;
            }
            catch (Exception e)
            {
                Logger.Trace("Cannot InsertOrUpdate template for " + character.CharName + ": {0}", e);
            }
            finally
            {
                m_DbCharacters.Add(character);
                con.Close();
                con = null;
            }
        }
Beispiel #3
0
            public static MySqlCommand GetErrorXml(string appName, Guid id)
            {
                MySqlCommand command = new MySqlCommand("elmah_GetErrorXml");

                command.CommandType = CommandType.StoredProcedure;

                MySqlParameterCollection parameters = command.Parameters;

                parameters.Add("Id", MySqlDbType.String, 36).Value = id.ToString();
                parameters.Add("App", MySqlDbType.VarChar, _maxAppNameLength).Value = appName.Substring(0, Math.Min(_maxAppNameLength, appName.Length));

                return(command);
            }
        public static MySqlParameterCollection AddWithValue(
            this MySqlParameterCollection parameters,
            string parameterName,
            MySqlDbType dbType,
            object value)
        {
            var parameter = new MySqlParameter(parameterName, dbType);

            parameter.Value = value;
            parameters.Add(parameter);
            parameter.ResetDbType();
            return(parameters);
        }
Beispiel #5
0
 private static void FillParameters(MySqlParameterCollection parameters, BaseModel model)
 {
     PropertyInfo[] pinfos = model.GetType().GetProperties();
     pinfos.ToList().ForEach(pi =>
     {
         Attribute sqlParamName = pi.GetCustomAttribute(typeof(SqlParameterNameAttribute));
         if (sqlParamName != null)
         {
             SqlParameterNameAttribute sqlParameterNameAttribute = (SqlParameterNameAttribute)sqlParamName;
             parameters.AddWithValue(sqlParameterNameAttribute.ParameterName, pi.GetValue(model));
         }
     });
 }
Beispiel #6
0
        public static void AddWithNullableValue(this MySqlParameterCollection collection, string parameterName, object value)
        {
            if (value == null)
            {
                collection.AddWithValue(parameterName, DBNull.Value);
                return;
            }

            var type         = value.GetType();
            var defaultValue = type.IsValueType ? Activator.CreateInstance(type) : null;

            collection.AddWithValue(parameterName, value.Equals(defaultValue) ? DBNull.Value : value);
        }
Beispiel #7
0
 public virtual async Task <int> ExecuteNonQueryAsync(string commandText, MySqlParameterCollection parameterCollection,
                                                      IOBehavior ioBehavior, CancellationToken cancellationToken)
 {
     using (var reader = (MySqlDataReader)await ExecuteReaderAsync(commandText, parameterCollection, CommandBehavior.Default, ioBehavior, cancellationToken).ConfigureAwait(false))
     {
         do
         {
             while (await reader.ReadAsync(ioBehavior, cancellationToken).ConfigureAwait(false))
             {
             }
         } while (await reader.NextResultAsync(ioBehavior, cancellationToken).ConfigureAwait(false));
         return(reader.RecordsAffected);
     }
 }
 public static MySqlParameterCollection AddSlidingExpirationInSeconds(
     this MySqlParameterCollection parameters,
     TimeSpan?value)
 {
     if (value.HasValue)
     {
         return(parameters.AddWithValue(
                    Columns.Names.SlidingExpirationInSeconds, MySqlDbType.Int64, value.Value.TotalSeconds));
     }
     else
     {
         return(parameters.AddWithValue(Columns.Names.SlidingExpirationInSeconds, MySqlDbType.Int64, DBNull.Value));
     }
 }
        private static MySqlParameterCollection RetornaParametros(MySqlParameterCollection pMySql, List <ParametrosBD> param)
        {
            if (param == null || param.Count == 0 || pMySql == null)
            {
                return(null);
            }

            foreach (ParametrosBD p in param)
            {
                pMySql.AddWithValue(p.NomeParametro, p.ValorParametro);
            }

            return(pMySql);
        }
        private void AddSqlParamaterValues(MySqlParameterCollection parameters, XmlNode moneyPaymentNode, Dictionary <string, string> logElements, bool updateMode)
        {
            foreach (KeyValuePair <string, string> kvp in logElements)
            {
                string parameterName  = String.Format("@{0}", kvp.Key);
                string parameterValue = GetXmlValueString(moneyPaymentNode, kvp.Value);

                //no value then do not add if in update mode
                if ((updateMode == false) || (parameterValue.Length > 0))
                {
                    parameters.AddWithValue(parameterName, parameterValue);
                }
            }
        }
Beispiel #11
0
            public static MySqlCommand GetErrorsXml(string appName, int pageIndex, int pageSize)
            {
                MySqlCommand command = new MySqlCommand("elmah_GetErrorsXml");

                command.CommandType = CommandType.StoredProcedure;

                MySqlParameterCollection parameters = command.Parameters;

                parameters.Add("App", MySqlDbType.VarChar, _maxAppNameLength).Value = appName.Substring(0, Math.Min(_maxAppNameLength, appName.Length));
                parameters.Add("PageIndex", MySqlDbType.Int32).Value      = pageIndex;
                parameters.Add("PageSize", MySqlDbType.Int32).Value       = pageSize;
                parameters.Add("TotalCount", MySqlDbType.Int32).Direction = ParameterDirection.Output;

                return(command);
            }
Beispiel #12
0
 public MySqlParameterCollectionNameToIndexTests()
 {
     m_collection = new MySqlParameterCollection
     {
         new MySqlParameter {
             ParameterName = "A", Value = 1
         },
         new MySqlParameter {
             ParameterName = "B", Value = 2
         },
         new MySqlParameter {
             ParameterName = "C", Value = 3
         },
     };
 }
Beispiel #13
0
 public static MySqlParameterCollection AddAbsoluteExpirationMono(
     this MySqlParameterCollection parameters,
     DateTimeOffset?utcTime)
 {
     if (utcTime.HasValue)
     {
         return(parameters.AddWithValue(
                    Columns.Names.AbsoluteExpiration, MySqlDbType.DateTime, utcTime.Value.UtcDateTime));
     }
     else
     {
         return(parameters.AddWithValue(
                    Columns.Names.AbsoluteExpiration, MySqlDbType.DateTime, DBNull.Value));
     }
 }
Beispiel #14
0
        public System.Data.DataSet DataSelect(string procedure, MySqlParameterCollection col)
        {
            MySqlConnection  con  = Connection;
            MySqlDataAdapter adap = new MySqlDataAdapter(target_ + procedure + "_select", con);

            adap.SelectCommand.CommandType = System.Data.CommandType.StoredProcedure;
            foreach (MySqlParameter par in col)
            {
                adap.SelectCommand.Parameters.Add(par);
            }
            System.Data.DataSet ds = new System.Data.DataSet();
            adap.Fill(ds);
            adap.Dispose();
            return(ds);
        }
Beispiel #15
0
        private PayloadData CreateQueryPayload(string commandText, MySqlParameterCollection parameterCollection)
        {
            var statementPreparerOptions = StatementPreparerOptions.None;

            if (m_command.Connection.AllowUserVariables || m_command.CommandType == CommandType.StoredProcedure)
            {
                statementPreparerOptions |= StatementPreparerOptions.AllowUserVariables;
            }
            if (m_command.Connection.DateTimeKind == DateTimeKind.Utc)
            {
                statementPreparerOptions |= StatementPreparerOptions.DateTimeUtc;
            }
            else if (m_command.Connection.DateTimeKind == DateTimeKind.Local)
            {
                statementPreparerOptions |= StatementPreparerOptions.DateTimeLocal;
            }
            if (m_command.CommandType == CommandType.StoredProcedure)
            {
                statementPreparerOptions |= StatementPreparerOptions.AllowOutputParameters;
            }

            switch (m_command.Connection.GuidFormat)
            {
            case MySqlGuidFormat.Char36:
                statementPreparerOptions |= StatementPreparerOptions.GuidFormatChar36;
                break;

            case MySqlGuidFormat.Char32:
                statementPreparerOptions |= StatementPreparerOptions.GuidFormatChar32;
                break;

            case MySqlGuidFormat.Binary16:
                statementPreparerOptions |= StatementPreparerOptions.GuidFormatBinary16;
                break;

            case MySqlGuidFormat.TimeSwapBinary16:
                statementPreparerOptions |= StatementPreparerOptions.GuidFormatTimeSwapBinary16;
                break;

            case MySqlGuidFormat.LittleEndianBinary16:
                statementPreparerOptions |= StatementPreparerOptions.GuidFormatLittleEndianBinary16;
                break;
            }

            var preparer = new StatementPreparer(commandText, parameterCollection, statementPreparerOptions);

            return(new PayloadData(preparer.ParseAndBindParameters(), isPooled: true));
        }
Beispiel #16
0
 void AddInsertOrUpdateParams(MySqlParameterCollection paramCollection)
 {
     paramCollection.Add("Name", MySqlType.VarChar, NameSize);
     paramCollection.Add("DisplayedName", MySqlType.VarChar, DisplayedNameSize);
     paramCollection.Add("LastSeen", DateType);
     paramCollection.Add("Rank", MySqlType.SmallInt);
     paramCollection.Add("PreviousRank", MySqlType.SmallInt);
     paramCollection.Add("RankChangeType", MySqlType.TinyInt);
     paramCollection.Add("RankChangeDate", DateType);
     paramCollection.Add("RankChangedBy", MySqlType.VarChar, ByFieldSize);
     paramCollection.Add("RankChangeReason", MySqlType.VarChar, ReasonFieldSize);
     paramCollection.Add("BanStatus", MySqlType.TinyInt);
     paramCollection.Add("BanDate", DateType);
     paramCollection.Add("BannedBy", MySqlType.VarChar, ByFieldSize);
     paramCollection.Add("BanReason", MySqlType.VarChar, ReasonFieldSize);
     paramCollection.Add("BannedUntil", DateType);
     paramCollection.Add("LastFailedLoginDate", DateType);
     paramCollection.Add("LastFailedLoginIP", MySqlType.Int);
     paramCollection.Add("UnbanDate", DateType);
     paramCollection.Add("UnbannedBy", MySqlType.VarChar, ByFieldSize);
     paramCollection.Add("UnbanReason", MySqlType.VarChar, ReasonFieldSize);
     paramCollection.Add("FirstLoginDate", DateType);
     paramCollection.Add("LastLoginDate", DateType);
     paramCollection.Add("TotalTime", MySqlType.Int);
     paramCollection.Add("BlocksBuilt", MySqlType.Int);
     paramCollection.Add("BlocksDeleted", MySqlType.Int);
     paramCollection.Add("BlocksDrawn", MySqlType.BigInt);
     paramCollection.Add("TimesVisited", MySqlType.Int);
     paramCollection.Add("MessagesWritten", MySqlType.Int);
     paramCollection.Add("TimesKickedOthers", MySqlType.Int);
     paramCollection.Add("TimesBannedOthers", MySqlType.Int);
     paramCollection.Add("TimesKicked", MySqlType.Int);
     paramCollection.Add("LastKickDate", DateType);
     paramCollection.Add("LastKickBy", MySqlType.VarChar, ByFieldSize);
     paramCollection.Add("LastKickReason", MySqlType.VarChar, ReasonFieldSize);
     paramCollection.Add("IsFrozen", MySqlType.TinyInt, 1);
     paramCollection.Add("FrozenOn", DateType);
     paramCollection.Add("FrozenBy", MySqlType.VarChar, ByFieldSize);
     paramCollection.Add("MutedUntil", DateType);
     paramCollection.Add("MutedBy", MySqlType.VarChar, ByFieldSize);
     paramCollection.Add("Password", MySqlType.VarChar, PasswordFieldSize);
     paramCollection.Add("LastModified", DateType);
     paramCollection.Add("IsOnline", MySqlType.TinyInt, 1);
     paramCollection.Add("IsHidden", MySqlType.TinyInt, 1);
     paramCollection.Add("LastIP", MySqlType.Int);
     paramCollection.Add("LeaveReason", MySqlType.TinyInt);
     paramCollection.Add("BandwidthUseMode", MySqlType.TinyInt);
 }
Beispiel #17
0
        internal MySqlParameterCollection AlignParamsWithDb(MySqlParameterCollection?parameterCollection)
        {
            var alignedParams = new MySqlParameterCollection();
            var returnParam   = parameterCollection?.FirstOrDefault(x => x.Direction == ParameterDirection.ReturnValue);

            foreach (var cachedParam in Parameters)
            {
                MySqlParameter alignParam;
                if (cachedParam.Direction == ParameterDirection.ReturnValue)
                {
                    alignParam = returnParam ?? throw new InvalidOperationException($"Attempt to call stored function {FullyQualified} without specifying a return parameter");
                }
                else
                {
                    var index = parameterCollection?.NormalizedIndexOf(cachedParam.Name) ?? -1;
                    alignParam = index >= 0 ? parameterCollection ![index] : throw new ArgumentException($"Parameter '{cachedParam.Name}' not found in the collection.");
        /*
         * Sometimes the number of parameters in the stored procedure count doesn't
         * match the nummber of columns in the table. This function can be overriden
         * in those cases. Two examples of this are the Series and Books.
         */
        public bool AddParameterToCommand(MySqlCommand cmd, string ParameterName)
        {
            bool success    = true;
            int  tableIndex = getParameterIndex(ParameterName);

            if (tableIndex >= 0)
            {
                MySqlParameterCollection parameters = cmd.Parameters;
                success = _sqlCmdParameters[tableIndex].AddParameterToCommand(cmd);
            }
            else
            {
                success = false;
            }
            return(success);
        }
 public static MySqlParameterCollection AddCacheItemValue(this MySqlParameterCollection parameters, byte[] value)
 {
     if (value != null && value.Length < DefaultValueColumnWidth)
     {
         return(parameters.AddWithValue(
                    Columns.Names.CacheItemValue,
                    MySqlDbType.VarBinary,
                    DefaultValueColumnWidth,
                    value));
     }
     else
     {
         // do not mention the size
         return(parameters.AddWithValue(Columns.Names.CacheItemValue, MySqlDbType.VarBinary, value));
     }
 }
        public virtual async Task <object> ExecuteScalarAsync(string commandText, MySqlParameterCollection parameterCollection,
                                                              IOBehavior ioBehavior, CancellationToken cancellationToken)
        {
            object result = null;

            using (var reader = (MySqlDataReader)await ExecuteReaderAsync(commandText, parameterCollection, CommandBehavior.SingleResult | CommandBehavior.SingleRow, ioBehavior, cancellationToken).ConfigureAwait(false))
            {
                do
                {
                    if (await reader.ReadAsync(ioBehavior, cancellationToken).ConfigureAwait(false))
                    {
                        result = reader.GetValue(0);
                    }
                } while (await reader.NextResultAsync(ioBehavior, cancellationToken).ConfigureAwait(false));
            }
            return(result);
        }
Beispiel #21
0
        internal static void AddQuery(string Query, MySqlParameterCollection Params)
        {
            ActiveQueries.Add(Query.Trim());

            if (Settings.LoggingEnabled)
            {
                string Output = "Query " + GetActiveQueryCount + ": " + Query + "\n\n";

                foreach (MySqlParameter p in Params)
                {
                    Output += "  [" + p.ParameterName + "][" + p.Value + "]\n";
                }

                System.Diagnostics.Debug.WriteLine(Output);
                Console.WriteLine(Output);
            }
        }
Beispiel #22
0
        /// <summary>
        /// 将Request里的参数转成SqlParameter[]
        /// </summary>
        /// <returns></returns>
        internal static void RequestParasToSqlParameters(MySqlParameterCollection oldParas)
        {
            var oldParaList      = oldParas.Cast <MySqlParameter>().ToList();
            var paraDictionarAll = SqlSugarTool.GetParameterDictionary();

            if (paraDictionarAll != null && paraDictionarAll.Count() > 0)
            {
                foreach (KeyValuePair <string, string> it in paraDictionarAll)
                {
                    var par = new MySqlParameter("@" + it.Key, it.Value);
                    if (!oldParaList.Any(oldPara => oldPara.ParameterName == ("@" + it.Key)))
                    {
                        oldParas.Add(par);
                    }
                }
            }
        }
Beispiel #23
0
        public void Bug16307()
        {
            st.execSQL("DROP TABLE IF EXISTS Test");
            st.execSQL("CREATE TABLE Test (OrgNum int auto_increment, CallReportNum int, Stamp varchar(50), " +
                       "WasRealCall varchar(50), WasHangup varchar(50), primary key(orgnum))");

            string strSQL = "INSERT INTO Test(OrgNum, CallReportNum, Stamp, WasRealCall, WasHangup) " +
                            "VALUES (?OrgNum, ?CallReportNum, ?Stamp, ?WasRealCall, ?WasHangup)";

            MySqlCommand             cmd = new MySqlCommand(strSQL, st.conn);
            MySqlParameterCollection pc  = cmd.Parameters;

            pc.Add("?OrgNum", MySqlDbType.Int32, 0, "OrgNum");
            pc.Add("?CallReportNum", MySqlDbType.Int32, 0, "CallReportNum");
            pc.Add("?Stamp", MySqlDbType.VarChar, 0, "Stamp");
            pc.Add("?WasRealCall", MySqlDbType.VarChar, 0, "WasRealCall");
            pc.Add("?WasHangup", MySqlDbType.VarChar, 0, "WasHangup");

            MySqlDataAdapter da = new MySqlDataAdapter("SELECT * FROM Test", st.conn);

            da.InsertCommand = cmd;

            DataSet ds = new DataSet();

            da.Fill(ds);

            DataRow row = ds.Tables[0].NewRow();

            row["CallReportNum"] = 1;
            row["Stamp"]         = "stamp";
            row["WasRealCall"]   = "yes";
            row["WasHangup"]     = "no";
            ds.Tables[0].Rows.Add(row);

            da.Update(ds.Tables[0]);

            strSQL = "SELECT @@IDENTITY AS 'Identity';";
            MySqlCommand cmd2 = new MySqlCommand(strSQL, st.conn);

            using (MySqlDataReader reader = cmd2.ExecuteReader())
            {
                reader.Read();
                int intCallNum = Int32.Parse(reader.GetValue(0).ToString());
                Assert.Equal(1, intCallNum);
            }
        }
Beispiel #24
0
        public void EnumParametersAreParsedCorrectly(MySqlDbType?type, object value, string replacedValue)
        {
            const string sql        = "SELECT @param;";
            var          parameters = new MySqlParameterCollection();
            var          parameter  = new MySqlParameter("@param", value);

            if (type is not null)
            {
                parameter.MySqlDbType = type.Value;
            }

            parameters.Add(parameter);

            var parsedSql = GetParsedSql(sql, parameters);

            Assert.Equal(sql.Replace("@param", replacedValue), parsedSql);
        }
Beispiel #25
0
 internal static void ConvertParameters(MySQLDataStoreBase store, MySqlParameterCollection pars)
 {
     if (pars == null)
     {
         return;
     }
     for (var i = 0; i < pars.Count; i++)
     {
         var         par = pars[i];
         MySqlDbType?convertedDbType;
         par.Value = CLRValueToDB(store, par.Value, out convertedDbType);
         if (convertedDbType.HasValue)
         {
             par.MySqlDbType = convertedDbType.Value;
         }
     }
 }
Beispiel #26
0
        private static void AddQueryParameters(ReadCommand command, MySqlParameterCollection parameters)
        {
            var pkNames = GetPkNames(command.TableSchema);

            for (var i = 0; i < pkNames.Count; i++)
            {
                parameters.AddWithValue($"from_{i}", command.FromPrimaryKey[i]);
            }

            if (command.ToPrimaryKey != null)
            {
                for (var i = 0; i < pkNames.Count; i++)
                {
                    parameters.AddWithValue($"to_{i}", command.ToPrimaryKey[i]);
                }
            }
        }
Beispiel #27
0
 /// <summary>
 /// Adds a nullable value to the end of the <see cref="System.Data.SqlClient.SqlParameterCollection" />
 /// </summary>
 /// <param name="parameters">The <see cref="System.Data.SqlClient.SqlParameterCollection" /> to add the value</param>
 /// <param name="parameterName">The name of the parameter</param>
 /// <param name="value">The nullable value to be added</param>
 public static void AddOrSetWithNullableValue(this MySqlParameterCollection parameters, string parameterName, object value)
 {
     if (parameters.Contains(parameterName))
     {
         if (value == null || (value is string && (string.IsNullOrEmpty((string)value))))
         {
             parameters[parameterName].Value = DBNull.Value;
         }
         else
         {
             parameters[parameterName].Value = value;
         }
     }
     else
     {
         AddWithNullableValue(parameters, parameterName, value);
     }
 }
Beispiel #28
0
 private static void ApplySecurity(MySqlCommand command, MySqlParameterCollection parameterTypes)
 {
     foreach (MySqlParameter parameter in parameterTypes)
     {
         if (parameter.DbType == DbType.AnsiString)
         {
             string parameterName = parameter.ParameterName.Replace(parameterPrefix, "").ToLower();
             foreach (MySqlParameter commandParameter in command.Parameters)
             {
                 if ((commandParameter.ParameterName.Replace(parameterPrefix, "").ToLower() == parameterName) &&
                     ((commandParameter.Value != null) && (commandParameter.Value != DBNull.Value)))
                 {
                     commandParameter.Value = forbiddenVarchars.Replace(commandParameter.Value.ToString(), forbiddenVarcharsReplacement);
                 }
             }
         }
     }
 }
Beispiel #29
0
        GetMySqlConnectionAndCommand
        (
            String connectionString,
            String storedProcedureName,
            Int32 commandTimeoutSeconds,
            out MySqlConnection mySqlConnection,
            out MySqlCommand mySqlCommand,
            params Object [] nameValuePairs
        )
        {
            Debug.Assert(!String.IsNullOrEmpty(connectionString));
            Debug.Assert(!String.IsNullOrEmpty(storedProcedureName));
            Debug.Assert(commandTimeoutSeconds > 0);
            Debug.Assert(nameValuePairs.Length % 2 == 0);

            mySqlConnection             = new MySqlConnection(connectionString);
            mySqlCommand                = new MySqlCommand(storedProcedureName, mySqlConnection);
            mySqlCommand.CommandType    = CommandType.StoredProcedure;
            mySqlCommand.CommandTimeout = commandTimeoutSeconds;
            MySqlParameterCollection parameters = mySqlCommand.Parameters;

            for (Int32 i = 0; i < nameValuePairs.Length; i += 2)
            {
                Debug.Assert(nameValuePairs[i + 0] is String);

                String name = (String)nameValuePairs[i + 0];

                Debug.Assert(!String.IsNullOrEmpty(name));
                Debug.Assert(name[0] == '@');

                Object value = nameValuePairs[i + 1];

                if (value == null)
                {
                    // You cannot set a MySqlParameter to null.  It must be
                    // DBNull.Value.

                    value = DBNull.Value;
                }

                parameters.AddWithValue(name, value);
            }
        }
Beispiel #30
0
        public DataTable RequestSelect(string request, List <MySqlParameter> pms = null, int Timeout = 0, MySqlTransaction transaction = null)
        {
            DataTable dt = new DataTable();


            using (MySqlConnection connection = this.getConnection())
            {
                if (connection.ConnectionString == "" && connection.State != ConnectionState.Open)
                {
                    connection.ConnectionString = connectionString;
                }
                MySqlCommand sqlCmd = new MySqlCommand(request, connection);
                sqlCmd.Connection.Open();
                sqlCmd.CommandType    = CommandType.Text;
                sqlCmd.CommandTimeout = Timeout;
                if (transaction != null)
                {
                    sqlCmd.Transaction = transaction;
                }

                //Ajouter des parametres
                if (pms != null)
                {
                    MySqlParameterCollection sqlParameters = (MySqlParameterCollection)sqlCmd.Parameters;

                    foreach (MySqlParameter item in pms)
                    {
                        sqlParameters.Add(item);
                    }
                }

                MySqlDataAdapter sda = new MySqlDataAdapter();
                sda.SelectCommand = sqlCmd;



                sda.Fill(dt);
                sda.Dispose();
                sqlCmd.Connection.Close();
            }

            return(dt);
        }
        /// <summary>
        /// Inserts Or Update Existing Account Into your current Login Server MySql DataBase.
        /// </summary>
        /// <param name="account">Your Account Which you want Insert(If Not Exist) Or Update(If Exist)</param>
        public static void InsertOrUpdate(Account account)
        {
            MySqlConnection con = new MySqlConnection(Settings.Default.DataBaseConnectionString);

            try
            {
                con.Open();
                MySqlCommand command = null;
                if (m_DbAccounts.Contains(account))
                {
                    command = new MySqlCommand("UPDATE `accounts` SET `id` = @id, `name` = @name, `mainaccess` = @mainaccess, `useraccess` = @useraccess, `last_ip` = @lastip, `password` = @password, `token` = @token, `last_online` = @lastonline, `characters` = @characters WHERE `id` = @aid", con);
                }
                else
                {
                    command = new MySqlCommand("INSERT INTO `accounts`(id, name, mainaccess, useraccess, last_ip, password, last_online, characters) VALUES(@id, @name, @mainaccess, @useraccess, @lastip, @password, @lastonline, @characters)", con);
                }

                MySqlParameterCollection parameters = command.Parameters;
                parameters.Add("@id", MySqlDbType.Int32).Value         = account.AccountId;
                parameters.Add("@name", MySqlDbType.String).Value      = account.Name;
                parameters.Add("@mainaccess", MySqlDbType.Byte).Value  = account.AccessLevel;
                parameters.Add("@useraccess", MySqlDbType.Byte).Value  = account.Membership;
                parameters.Add("@lastip", MySqlDbType.String).Value    = account.LastIp;
                parameters.Add("@password", MySqlDbType.String).Value  = account.Token;
                parameters.Add("@token", MySqlDbType.String).Value     = account.Password;
                parameters.Add("@lastonline", MySqlDbType.Int64).Value = account.LastEnteredTime;
                if (m_DbAccounts.Contains(account))
                {
                    parameters.Add("@aid", MySqlDbType.Int32).Value = account.AccountId;
                }

                parameters.Add("@characters", MySqlDbType.Int32).Value = account.Characters;

                command.ExecuteNonQuery();
                command = null;
            }
            finally
            {
                m_DbAccounts.Add(account);
                con.Close();
                con = null;
            }
        }
 void AddInsertOrUpdateParams( MySqlParameterCollection paramCollection ) {
     paramCollection.Add( "Name", MySqlType.VarChar, NameSize );
     paramCollection.Add( "DisplayedName", MySqlType.VarChar, DisplayedNameSize );
     paramCollection.Add( "LastSeen", DateType );
     paramCollection.Add( "Rank", MySqlType.SmallInt );
     paramCollection.Add( "PreviousRank", MySqlType.SmallInt );
     paramCollection.Add( "RankChangeType", MySqlType.TinyInt );
     paramCollection.Add( "RankChangeDate", DateType );
     paramCollection.Add( "RankChangedBy", MySqlType.VarChar, ByFieldSize );
     paramCollection.Add( "RankChangeReason", MySqlType.VarChar, ReasonFieldSize );
     paramCollection.Add( "BanStatus", MySqlType.TinyInt );
     paramCollection.Add( "BanDate", DateType );
     paramCollection.Add( "BannedBy", MySqlType.VarChar, ByFieldSize );
     paramCollection.Add( "BanReason", MySqlType.VarChar, ReasonFieldSize );
     paramCollection.Add( "BannedUntil", DateType );
     paramCollection.Add( "LastFailedLoginDate", DateType );
     paramCollection.Add( "LastFailedLoginIP", MySqlType.Int );
     paramCollection.Add( "UnbanDate", DateType );
     paramCollection.Add( "UnbannedBy", MySqlType.VarChar, ByFieldSize );
     paramCollection.Add( "UnbanReason", MySqlType.VarChar, ReasonFieldSize );
     paramCollection.Add( "FirstLoginDate", DateType );
     paramCollection.Add( "LastLoginDate", DateType );
     paramCollection.Add( "TotalTime", MySqlType.Int );
     paramCollection.Add( "BlocksBuilt", MySqlType.Int );
     paramCollection.Add( "BlocksDeleted", MySqlType.Int );
     paramCollection.Add( "BlocksDrawn", MySqlType.BigInt );
     paramCollection.Add( "TimesVisited", MySqlType.Int );
     paramCollection.Add( "MessagesWritten", MySqlType.Int );
     paramCollection.Add( "TimesKickedOthers", MySqlType.Int );
     paramCollection.Add( "TimesBannedOthers", MySqlType.Int );
     paramCollection.Add( "TimesKicked", MySqlType.Int );
     paramCollection.Add( "LastKickDate", DateType );
     paramCollection.Add( "LastKickBy", MySqlType.VarChar, ByFieldSize );
     paramCollection.Add( "LastKickReason", MySqlType.VarChar, ReasonFieldSize );
     paramCollection.Add( "IsFrozen", MySqlType.TinyInt, 1 );
     paramCollection.Add( "FrozenOn", DateType );
     paramCollection.Add( "FrozenBy", MySqlType.VarChar, ByFieldSize );
     paramCollection.Add( "MutedUntil", DateType );
     paramCollection.Add( "MutedBy", MySqlType.VarChar, ByFieldSize );
     paramCollection.Add( "Password", MySqlType.VarChar, PasswordFieldSize );
     paramCollection.Add( "LastModified", DateType );
     paramCollection.Add( "IsOnline", MySqlType.TinyInt, 1 );
     paramCollection.Add( "IsHidden", MySqlType.TinyInt, 1 );
     paramCollection.Add( "LastIP", MySqlType.Int );
     paramCollection.Add( "LeaveReason", MySqlType.TinyInt );
     paramCollection.Add( "BandwidthUseMode", MySqlType.TinyInt );
 }
Beispiel #33
0
 private bool SerializeParameter(MySqlParameterCollection parameters, MySqlStream stream, string parmName)
 {
     MySqlParameter parameterFlexible = parameters.GetParameterFlexible(parmName, false);
     if (parameterFlexible == null)
     {
         if (!parmName.StartsWith("@") || !this.ShouldIgnoreMissingParameter(parmName))
         {
             throw new MySqlException(string.Format(Resources.ParameterMustBeDefined, parmName));
         }
         return false;
     }
     parameterFlexible.Serialize(stream, false);
     return true;
 }
Beispiel #34
0
 private void InternalBindParameters(string sql, MySqlParameterCollection parameters, MySqlStream stream)
 {
     ArrayList list = this.TokenizeSql(sql);
     if (stream == null)
     {
         stream = new MySqlStream(this.Driver.Encoding);
         stream.Version = this.Driver.Version;
     }
     string str = (string) list[list.Count - 1];
     if (str != ";")
     {
         list.Add(";");
     }
     foreach (string str2 in list)
     {
         if (str2.Trim().Length == 0)
         {
             continue;
         }
         if (str2 == ";")
         {
             this.buffers.Add(stream);
             stream = new MySqlStream(this.Driver.Encoding);
             continue;
         }
         if (((str2.Length < 2) || (((str2[0] != '@') || (str2[1] == '@')) && (str2[0] != '?'))) || !this.SerializeParameter(parameters, stream, str2))
         {
             stream.WriteStringNoNull(str2);
         }
     }
 }