2014-07-05 85 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`" ;