2017-10-21 52 views
1

與此戰鬥了一段時間我想即使這個很墮落例子後(正確的應該是「SHOW變量,如‘max_allowed_pa​​cket的’」),它仍然失敗:MySQL的SHOW變量的產生沒有結果

String CommandText = "Show variables;"; 
MySqlCommand Command = new MySqlCommand(CommandText, Connection); 
    using (MySqlDataReader Reader = Command.ExecuteReader()) 
     while (Reader.Read()) 
      return (int)Reader["Value"]; 

^c命令文本到工作臺產生預期的結果爲我嘗試過的每個查詢。不管我用什麼語法來顯示變量,我都會在讀者中得到「枚舉不會產生任何結果」,當然它會崩潰,試圖將其轉換爲整數。在命中這個代碼之前,有一個用連接完成的Change Database命令,所以它必須是開放的。

我想不出任何可能會在這裏允許查詢執行的錯誤(它確定字段數應該是2,因此它必須與數據庫交談),但不能給我任何結果。

建議的問題肯定看起來像我的,但我已經嘗試過這種情況:

SELECT * FROM information_schema.global_variables其中變量名像「max_allowed_pa​​cket的」

,得到了相同的結果 - 沒有什麼。和以前一樣,將文本複製出調試器並將其粘貼到工作臺中會產生正確的結果。這種情況怎麼能在沒有完全失敗的情況下產生結果?

+0

你會得到你的命令,標籤,缺少標籤(例如工作臺)和錯誤消息的搜索結果? – philipxy

+0

[MYSQL - SHOW VARIABLE LIKE'%version%'可能在我的Java應用程序中不起作用]的重複(https://stackoverflow.com/questions/20914319/mysql-show-variable-like-version-not-working-in -my-java-application) – Progman

+0

不是C#人,所以我在做這件事的時候,但是我對'return(int)Reader [「Value」]中的'(int)'懷疑;'如果它意味着什麼我假設...因爲狀態變量的值幾乎可以肯定是數字串,而不是整數。 –

回答

0

SHOW GLOBAL VARIABLES;應該使用5.6.17或更高版本 或SHOW LOCAL VARIABLES,如果您正在查找會話變量。