我只想执行以下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;"
我得到了预期的结果。
我发现了这个question,但它并没有解决我的问题。
我正在尝试将SQLIse(SQLPSX project的一部分)移植到MySQL版MySQLIse。
我想处理任何简单有效的mysql语句。
修改
我试图运行部分sakila-schema.sql mysql演示数据库安装脚本,该脚本运行类似
的MySQL>资源 C:/temp/sakila-db/sakila-schema.sql;
答案 0 :(得分:43)
我在bolg
中找到了解决方案我必须添加
;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。