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

我只想执行以下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]

我收到一个致命错误。

当我用任一替换$ sql时

$sql = "SELECT DATABASE();"

要么

$sql = "SELECT 1;"

我得到了预期的结果。

我找到了这个问题,但是并不能解决我的问题。

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

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

我正在尝试运行sakila-

schema.sql的一部分mysql

demo数据库安装脚本,该脚本由类似

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

回答:

我在此博客中找到了解决方案

我必须添加

;Allow User Variables=True

到连接字符串:

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

作品。我使用6.3.6.0版进行了测试。的MySql.Data

以上是 如何在.NET MySqlCommand中使用MySql用户定义的变量? 的全部内容, 来源链接: utcz.com/qa/404672.html

回到顶部