2014-07-05 86 views
0

我在Visual Studio 2010 C#項目中遇到此錯誤。我使用Mysql驅動程序版本6.8.3.0與mysql服務器(通過mysql workbench 6.1創建)建立連接,並建立與mysql服務器的連接(通過visual studio創建),但在我的軟件運行時出現此錯誤。我在網上搜索發現遠程連接問題是個問題。但如果我的連接建立良好,這不可能是問題,並根據錯誤說,在SQL查詢中的一些問題。但是這是一個簡單的select語句(SELECT * FROM case)。任何解決方案或建議都會被讚賞。Visual Studio 2010中的Mysql錯誤

using (MySqlDataReader mySqlDataReader = mySqlCommand.ExecuteReader())在下面的代碼部分。

String connectionString = "server = localhost; user id = XXX; password = XXX; database = XXXX"; 

     MySqlConnection connection = new MySqlConnection(connectionString); 
     connection.Open(); 
     String searchString = "SELECT * FROM case" ; 
     using (MySqlCommand mySqlCommand = new MySqlCommand(searchString, connection)) 
      { 
       // mySqlCommand.Parameters.AddWithValue("@caseId", textBox1.Text); 
       using (MySqlDataReader mySqlDataReader = mySqlCommand.ExecuteReader()) 
       { 
        String sb; 
        sb = mySqlDataReader.GetInt32(0).ToString(); 
        MessageBox.Show(sb); 

我得到的錯誤的部分是這個。

MySql.Data.MySqlClient.MySqlException was unhandled 
Message=You have an error in your SQL syntax; check the manual that corresponds to  your MySQL server version for the right syntax to use near 'case' at line 1 
Source=MySql.Data 
ErrorCode=-2147467259 Number=1064 StackTrace: 
    at MySql.Data.MySqlClient.MySqlStream.ReadPacket() 
    at MySql.Data.MySqlClient.NativeDriver.GetResult(Int32& affectedRow, Int64& insertedId) 
    at MySql.Data.MySqlClient.Driver.GetResult(Int32 statementId, Int32& affectedRows, Int64& insertedId) 
    at MySql.Data.MySqlClient.Driver.NextResult(Int32 statementId, Boolean force) 
    at MySql.Data.MySqlClient.MySqlDataReader.NextResult() 
    at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior) 
    at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader() 
    at CaseFinder.Form1.button1_Click(Object sender, EventArgs e) in 
+1

情況是在MySQL – Sajeetharan

+0

感謝名單Sajeetharan關鍵字我不知道。這可能是錯誤發生的原因。 – user2474358

+0

這和你的sql查詢缺少一個終止分號。 MySql需要;在每個操作結束時。 更改爲 String searchString =「SELECT * FROM mycase;」; //將case更名爲mycase更改表名 –

回答

0

CASE是MySQL中的關鍵字。試着用反引號('),如果你的意思是從一個名爲「情況」表中選擇把它包起來,例如:

String searchString = "SELECT * FROM `case`" ;