【发布时间】:2014-07-05 07:39:31
【问题描述】:
我在 Visual Studio 2010 C# 项目中遇到此错误。我使用 Mysql 驱动程序版本 6.8.3.0 连接到 mysql 服务器(通过 mysql workbench 6.1 创建)并且成功连接到 mysql 服务器(通过 Visual Studio 创建)但是当我的软件运行时出现错误。我在互联网上搜索发现远程连接问题是问题所在。但是,如果我的连接建立得很好,这不是问题,并且根据错误,它说 sql 查询中存在一些问题。但这是一个简单的选择语句(SELECT * FROM case)。感谢任何解决方案或建议。
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
【问题讨论】:
-
case是mysql中的关键字
-
Thanx Sajeetharan 我不知道。这可能是发生错误的原因。
-
那和您的 sql 查询缺少终止分号。 MySql 需要;在每个操作结束时。更改为 String searchString = "SELECT * FROM mycase;"; //将case重命名为mycase更改表名
-
@Ryios 分号在从代码发送的单个 SQL 命令中不是强制性的,相关讨论:Can you form legal statement in MySQL without using semicolon?
-
很高兴知道,我不知道我曾经发送过一个命令,这就是为什么我认为它是必需的。
标签: c# mysql visual-studio-2010