sql >> Database >  >> RDS >> Mysql

Opgestelde verklaring in strijd met gebruikersvariabelen

Wat betreft inschakelen SET met door de gebruiker gedefinieerde variabelen in een queryreeks, moet u Allow User Variables=True declareren in verbindingsreeks, ofwel in web.config of in MySqlConnection definitie:

Web.config

<connectionStrings>
    <add name="DefaultConnection" connectionString="server=ServerName;database=DatabaseName;uid=UserName;pwd=Password;
     Allow User Variables=True" />
</connectionStrings>

Handmatige definitie

string connectionString = @"server=ServerName;database=DatabaseName;uid=UserName;pwd=Password;
                           Allow User Variables=True";
using (MySqlConnection connection = new MySqlConnection(connectionString))
{
    string sqlCommand = "SET @userVar1 := 18; select * from db where [email protected] AND age > @userVar1"
    connection.Open();
    using (MySqlCommand command = new MySqlCommand(sqlCommand, connection))
    {
        // add required parameters here
        // and call ExecuteReader() afterwards
    }
}

De door de gebruiker gedefinieerde variabele instelling die beschikbaar is vanaf versie 5.2.2 van .NET Connector zoals voorzien in deze uitleg .

Verwant probleem:

Hoe kan ik een door de gebruiker gedefinieerde MySql-variabele gebruiken in een .NET MySql-opdracht?




  1. PDO + MySQL retourneert altijd strings, maar hoe zit het met MsSQL?

  2. Records splitsen in twee kolommen

  3. Hoe te controleren of mysqli_query rijen heeft verwijderd

  4. verkeerd aantal of soorten argumenten tijdens het aanroepen van Stored Proc