开发平台:VS2008(C#),MySQL Community Server 5.5.18myCmd.Connection = OpenMySqlConn();
myCmd.CommandType = CommandType.StoredProcedure;
myCmd.CommandText = sSPName;
myCmd.ExecuteNonQuery(); 执行时老是说找不到sSPName这个存储过程名,这是怎么回事?

解决方案 »

  1.   

    断点调试,看一下你的sSPName的实际内容是什么? 另外注意大小写。
      

  2.   

    或者直接 myCmd.Connection = OpenMySqlConn();
    myCmd.CommandText = "call myproc()";
    myCmd.ExecuteNonQuery();  
      

  3.   

    sSPName是我传的存储过程的名字,名字打小写绝对是与MySQL数据库中的名字是一样的。会不会是这个数据库版本不支持存储过程呀??因为我这个是Community Server而不是Enterprise和Standard
      

  4.   

    你的代码是什么
    在MYSQL命令行下,能否调用 此SP
      

  5.   


    直接到MYSQL命令行工具中试一下。
      

  6.   

    在命令行执行结果显示错误提示是我的参数个数不匹配,因为我的存储过程带了一些输入参数。这证明可以找到这个存储过程。
    这是我的存储过程:
    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
      

  7.   

    myCmd.CommandText = sSPName;猜不出你的sSPName;内容是什么,无法分析。 想办法尽可能多的提供信息以便他人分析。你在命令行执行的语句是什么? 完整的错误信息是什么?
    问题说明越详细,回答也会越准确!参见如何提问。(提问的智慧
      

  8.   

    sSPName就是上面存储过程的名字即sp_UpdateProdRecords,我在命令行中输入call sp_UpdateProdRecords没有错误.
      

  9.   

    困饶我的问题终于解决了,虽然问题解决但是有些想不通,希望有知道的人能跟我解释解释,那就不胜感激了.
       是这样的,在我的连接字符串中数据库名是用大写的,但MySQL数据库名实际是小写的.我做一般的数据库表格查询,更新,删除都没有问题,但是我调用存储过程时它就严格区分大小写,总是提示在数据库中找不到这个存储过程.   
       顺便说一下跟数据库版本没有关系,因为我下载了最新的5.5.18版本也有这个问题?难道这是MySql的bug?????