无法在C#上调用Mysql存储过程

时间:2015-12-09 15:12:35

标签: c# mysql

我正在使用mysql 5.6版本和C# 我创建了存储过程调用PWITEMS()。

delimiter //
create procedure PWITEMS() 
begin 
select Jw_ItemName,Jw_ItemID FROM pawning.jewelry_items;
end;//
delimiter ;

当我调用该程序时,它会给出错误:

  

错误[42000] [MySQL] [ODBC 5.3(w)驱动程序] [mysqld-5.6.26-log]你有   SQL语法中的错误;查看与您的手册相对应的手册   MySQL服务器版本,用于在'NewPWITEMS'附近使用正确的语法   第1行

我的C#代码在这里:

OdbcDataReader dr;
OdbcConnection cnn = new OdbcConnection(Form1.dbconn.str);
OdbcCommand cmd = new OdbcCommand("NewPWITEMS", cnn);
cmd.CommandType = CommandType.StoredProcedure;
cnn.Open();
dr = cmd.ExecuteReader();
while (dr.Read())
{
    cmbJewType.Items.Add(dr[0].ToString());
}

dr.Dispose();
cnn.Close();
cmd.Dispose();

1 个答案:

答案 0 :(得分:1)

MySQL命令将是

CALL PWITEMS

(我注意到你的定义是针对PWITEMS,而不是NewPWITEMS)

请参阅下面的评论 - ODBC文档指定正确的方法是使用大括号括起调用:http://vieka.com/esqldoc/esqlref/htm/odbcprocedure_calls.htm