sql >> Databáze >  >> RDS >> Mysql

Připravené prohlášení je v konfliktu s uživatelskými proměnnými

Pokud jde o povolení SET s uživatelem definovanými proměnnými v řetězci dotazu musíte deklarovat Allow User Variables=True v připojovacím řetězci, buď ve web.config nebo v MySqlConnection definice:

Web.config

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

Ruční definice

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

Nastavení uživatelem definované proměnné dostupné od verze 5.2.2 .NET Connector, jak je uvedeno v toto vysvětlení .

Související problém:

Jak mohu použít uživatelem definovanou proměnnou MySql v příkazu .NET MySqlCommand?




  1. Pojmenované příkazy MariaDB

  2. Export dat z SQL Server Express do CSV (vyžaduje citace a escapování)

  3. SQL Buddy – Webový nástroj pro správu MySQL

  4. Jak zrychlit hromadné vkládání na MS SQL Server pomocí pyodbc