如何在.NET MySqlCommand中使用MySql用户定义的variables?

我只是想执行下面的Mysql语句

SET @a = 1;SELECT @a; 

与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] 

我得到一个致命的错误。

当我replace$ sql

 $sql = "SELECT DATABASE();" 

要么

 $sql = "SELECT 1;" 

我得到了预期的结果。

我发现这个问题 ,但它不能解决我的问题。

我试图将SQLIse( SQLPSX项目的一部分) 移植到MySQL版本MySQLIse。

我想处理任何简单的有效的mysql语句。

编辑:

我试图运行sakila-schema.sql部分的mysql演示数据库安装脚本运行的东西

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

我发现在这个小块的解决scheme

我必须补充

 ;Allow User Variables=True 

到连接string

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

作品。 我用版本6.3.6.0testing了它。 的MySql.Data。