sql >> Databasteknik >  >> RDS >> Mysql

Förberedd uttalande som står i konflikt med användarvariabler

När det gäller aktivera SET med användardefinierade variabler i en frågesträng måste du deklarera Allow User Variables=True i anslutningssträng, antingen i web.config eller i MySqlConnection definition:

Web.config

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

Manuell definition

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

Den användardefinierade variabelinställningen är tillgänglig från och med version 5.2.2 av .NET Connector enligt denna förklaring .

Relaterat problem:

Hur kan jag använda en MySql användardefinierad variabel i ett .NET MySqlCommand?




  1. Tar endast tecken från vänster och höger om en specifik karaktär i mySQL

  2. Oracle SQL unika begränsning A till B, B till A

  3. flask-migrera kan inte släppa tabellen eftersom andra objekt är beroende av den

  4. Postgres-fel vid uppdatering av kolumndata