asp.net调用mysql存储过程的时候,提示:Procedure or function '`proc_LockItem`' cannot be found in database '`memcache`',请问各位大虾是否有碰到过???
但是调用proc_Add存储过程又可以执行!
被mySql搞死了,两天都没有找出原因!

解决方案 »

  1.   

    提示没有找到数据库,配置文件config数据库连接字符串是否正确。
      

  2.   

    提示没有找到数据库,配置文件config数据库连接字符串是否正确。
      

  3.   

    谢谢wwwwb及 梦醒十分 的提醒,我的代码如下:
    public bool LockItem(string strSessionId, string strApplicationName, int iLockId)
            {
                MySqlConnection objConn = GetConnection();
                MySqlCommand objComm = GetCommand("proc_LockItem", objConn);
                objComm.Parameters.Add(GetParameter("?_SessionId", strSessionId, MySqlDbType.VarChar, false));
                objComm.Parameters.Add(GetParameter("?_ApplicationName", strApplicationName, MySqlDbType.VarChar, false));
                objComm.Parameters.Add(GetParameter("?_LockId", iLockId, MySqlDbType.Int16, false));
                objComm.ExecuteNonQuery();
                return (objComm.ExecuteNonQuery() > 0);
            }private MySqlConnection GetConnection()
            {
                return  _objConn = new MySqlConnection(strConn);;
            }        private static MySqlCommand GetCommand(string strComm, MySqlConnection objConn)
            {
                if (objConn.State != ConnectionState.Open)
                {
                    objConn.Open();
                }            return new MySqlCommand(strComm, objConn) { CommandType = CommandType.StoredProcedure };
            }连接字符串配置如下:
    <add name="MySqlDB" connectionString="server=192.168.1.56;port=3306;uid=root;pwd=123456;DataBase=memcache;charset=utf8;allow zero datetime=true;" providerName="MySql.Data.MySqlClient"/>感觉太奇怪了,proc_Add存储过程可以被执行,proc_LockItem就总是提示:Cannot be found!还请大虾指点!
    mysql的版本:5.5.11-log
      

  4.   

    你确定 数据库 memcache中有 proc_LockItem 存储过程?
      

  5.   

    肯定有,下面是存储过程的代码:
    CREATE DEFINER=`root`@`%` PROCEDURE `proc_LockItem`( _SessionId          varchar(80),
      _ApplicationName    varchar(255),
      _LockId             int
    )
    BEGIN
          UPDATE tblsessions
             SET LockId = _LockId, Flags = 0
           WHERE SessionId = _SessionId AND ApplicationName = _ApplicationName;
    END
      

  6.   

    在MYSQL 命令行下
    use memcache;
    call `proc_LockItem`(你的参数)结果如何
      

  7.   

    你的代码是怎么调用`proc_LockItem`的
      

  8.   

    先 use memcache; 一下在你的代码中。
      

  9.   

    我的代码在上面已经贴出来了!不过自己搞定了,重新下了个高版本的mysql.data.dll就搞定了!
    唉,搞不懂mysql的东西怎么这样!还是谢谢wwwwb大虾!结贴喽!