我找不到这个代码中的错误。据我所知,这是好的,并希望正确执行,但我得到一个错误:
错误[42000] [MySQL][ODBC 3.51驱动程序][mysqld-5.7.11]
SQL语法中有错误;检查与您的MySQL服务器版本对应的手册,以了解在第1行的“ViewBatchByID”附近使用的正确语法
我的代码
string Message = null;
OdbcCommand Cmd = new OdbcCommand();
Cmd.Connection = Connection.con;
Cmd.CommandText = "ViewBatchByID";
Cmd.CommandType = CommandType.StoredProcedure;
Cmd.Parameters.AddWithValue("@p0", 1);
try
{
Cmd.ExecuteNonQuery();
}
catch(Exception ex)
{
Message = ex.Message.ToString();
}
这里ViewBatchByID
是我的存储过程,它在服务器上工作正常。
2条答案
按热度按时间xfyts7mz1#
我发现这个问题是因为我有同样的问题。经过更多的研究和一些试验和错误,我能够解决它如下。
首先,需要为MySQL更改命令文本。Microsoft SQL Server只需要命令文本中的存储过程名称,但对于MySQL,您需要指定要执行的完整命令。因此,例如,具有一个参数的存储过程需要设置如下:
请注意,如果存储过程有多个参数,则必须为每个参数输入一个问号,每个参数之间用逗号隔开。因此,如果您的存储过程需要两个参数,则需要如下设置:
此外,MySQL不使用@符号来表示存储过程中的参数。您的参数应按如下方式添加:
因此,原始代码片段的解决方案可能如下所示:
这假定从原始代码片段来看,连接已经打开并从对象“Connection.con”引用。
umuewwlo2#
检查服务器的连接设置。
Database
设置好了吗?Driver={SQL Server};Server=(local);Trusted_Connection=Yes;Database=AdventureWorks;