¿Cómo puedo usar una variable definida por el usuario MySql en .NET MySqlCommand?

Simplemente quiero ejecutar la siguiente instrucción Mysql

SET @a = 1;SELECT @a; 

con MySql.Data.MySqlClient

 [System.Reflection.Assembly]::LoadWithPartialName("MySql.Data") $password = 'mypassword' $sql = "SET @a = 1;SELECT @a;" $server = 'localhost' $port = 3306 $database = 'test' $User = 'root' $conn=new-object MySql.Data.MySqlClient.MySqlConnection $connectionstring = "Server=$Server;Port=$port;Database=$DataBase;Uid=$User;Pwd=$Password;allow zero datetime=yes" $conn.ConnectionString = $connectionstring $conn.Open() $cmd=new-object MySql.Data.MySqlClient.MySqlCommand($sql,$conn) $ds=New-Object system.Data.DataSet $da=New-Object MySql.Data.MySqlClient.MySqlDataAdapter($cmd) $da.fill($ds) $conn.close() $ds.tables[0] 

Me sale un error fatal.

Cuando reemplazo $ sql por cualquiera

 $sql = "SELECT DATABASE();" 

o

 $sql = "SELECT 1;" 

Obtengo el resultado esperado.

Encontré esta pregunta , pero no resuelve mi problema.

Estoy tratando de portar SQLIse (una parte del proyecto SQLPSX ) a la versión MySQL MySQLIse.

Quiero procesar cualquier statement simple y válida de MySQL.

EDITAR:

Estaba intentando ejecutar partes de la secuencia de comandos de instalación de la base de datos de demostración de mysql sakila-schema.sql, que funciona por algo así como

mysql> SOURCE C: /temp/sakila-db/sakila-schema.sql;

Encontré la solución en este bolg

Tengo que agregar

 ;Allow User Variables=True 

a la cadena de conexión

 $connectionstring = "Server=$Server;Port=$port;Database=$DataBase;Uid=$User;Pwd=$Password;allow zero datetime=yes;Allow User Variables=True" 

trabajos. Lo probé con la versión 6.3.6.0. de MySql.Data.