我只是想用MySql.Data.MySqlClient如何在.NET MySqlCommand中使用MySql用戶定義的變量?
[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]
我得到一個致命的錯誤,執行下面的MySQL語句
SET @a = 1;SELECT @a;
。
當我通過兩種
$sql = "SELECT DATABASE();"
或
$sql = "SELECT 1;"
更換$ sql中我得到預期的結果。
我發現這個question,但它不能解決我的問題。
我試圖將SQLIse(SQLPSX project的一部分)移植到MySQL版本MySQLIse。
我想處理任何簡單有效的mysql語句。
編輯:
我試圖運行sakila-schema.sql MySQL的演示數據庫安裝腳本,它通過類似
的mysql> SOURCE C同時運行的部分:/溫度/ sakila的-DB /sakila-schema.sql;
「SET @a = 1; SELECT @a;」在標準的MySql工具中工作?在TSQL中,您需要在使用它之前聲明該變量,「DECLARE @a int; SET @a = 1; SELECT @a;」 – 2011-04-02 17:24:44
sakila-schema.sql以下列語句開頭:SET @OLD_UNIQUE_CHECKS = @@ UNIQUE_CHECKS,UNIQUE_CHECKS = 0; – 2011-04-02 17:35:11