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

本文关键字:调用 Mysql 存储过程 | 更新日期: 2023-09-27 18:26:13

我使用的是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语法错误;查看与您的在"NewPWITEMS"附近使用正确语法的MySQL服务器版本第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();

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

MySQL命令将是

CALL PWITEMS

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

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