开发平台:VS2008(C#),MySQL Community Server 5.5.18myCmd.Connection = OpenMySqlConn();
myCmd.CommandType = CommandType.StoredProcedure;
myCmd.CommandText = sSPName;
myCmd.ExecuteNonQuery(); 执行时老是说找不到sSPName这个存储过程名,这是怎么回事?
myCmd.CommandType = CommandType.StoredProcedure;
myCmd.CommandText = sSPName;
myCmd.ExecuteNonQuery(); 执行时老是说找不到sSPName这个存储过程名,这是怎么回事?
myCmd.CommandText = "call myproc()";
myCmd.ExecuteNonQuery();
在MYSQL命令行下,能否调用 此SP
直接到MYSQL命令行工具中试一下。
这是我的存储过程:
CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_UpdateProdRecords`(IN childsn varchar(45),IN prdid varchar(45),IN prdver varchar(45),IN prdrev varchar(45),IN parsn varchar(45),IN childsid int,IN parsid int,IN uid varchar(45),IN orderid int,OUT rtnvalue varchar(255))
BEGIN
declare iResult int default 0;
select count(*) into iResult from prodrecords where psn=parsn and pstaid=parsid and ispass='1';
if iResult=0 then
set rtnvalue='previous step not process';
else
select count(*) into iResult from prodrecords where sn=childsn and staid=childsid and psn=parsn and ispass='1';
if iResult=1 then
set rtnvalue='current step process';
else
insert into prodrecords (sn,pid,pver,prev,psn,staid,pstaid,uid,mdate,ispass,ordid) values (childsn,prdid,prdver,prdrev,parsn,childsid,parsid,uid,now(),'1',orderid);
set rtnvalue='true';
end if;
end if;
END
问题说明越详细,回答也会越准确!参见如何提问。(提问的智慧)
是这样的,在我的连接字符串中数据库名是用大写的,但MySQL数据库名实际是小写的.我做一般的数据库表格查询,更新,删除都没有问题,但是我调用存储过程时它就严格区分大小写,总是提示在数据库中找不到这个存储过程.
顺便说一下跟数据库版本没有关系,因为我下载了最新的5.5.18版本也有这个问题?难道这是MySql的bug?????