Mysql 使用C调用存储过程#

Mysql 使用C调用存储过程#,mysql,stored-procedures,Mysql,Stored Procedures,这是我的存储过程 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_CPC`(IN _B VARCHAR(100),IN _G VARCHAR(2), IN _R VARCHAR(30), IN _D VARCHAR(30), OUT _C FLOAT, OUT _P FLOAT) 开始 //听到什么 结束$$ 定界符 我用C#流代码调用这个存储过程 DataSet tmpDataSet = new DataSet();

这是我的存储过程

CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_CPC`(IN _B VARCHAR(100),IN _G      VARCHAR(2), IN _R VARCHAR(30), IN _D VARCHAR(30), OUT _C FLOAT, OUT _P FLOAT)
开始 //听到什么 结束$$

定界符

我用C#流代码调用这个存储过程

   DataSet tmpDataSet = new DataSet();

    mCommand.CommandText = "sp_CPC";
         mCommand.CommandType = CommandType.StoredProcedure;
        // mCommand.CommandText = "sp_select_all_employees";
         mCommand.Parameters.AddWithValue("@_B", "bty-23");
         mCommand.Parameters.AddWithValue("@_G", "3");
         mCommand.Parameters.AddWithValue("@_R", "9000");
         mCommand.Parameters.AddWithValue("@_D", "92");

         mCommand.Parameters.Add("@_C",SqlDbType.Float);
        mCommand.Parameters["@_C"].Direction = ParameterDirection.Output;
        mCommand.Parameters.Add("@_P", SqlDbType.Float);
         mCommand.Parameters["@_P"].Direction = ParameterDirection.Output;

         try
         {
             mConnection.Open();
             mCommand.ExecuteNonQuery();
             mAdapter.Fill(tmpDataSet);

         }
         catch (Exception ex)
         {
             strErrorInfo = ex.ToString();
         }
         finally
         {
             mConnection.Close();
         }
         return tmpDataSet;


     }
它显示以下错误 输入字符串的格式不正确。
我该如何解决它呢?我想你在下一节中犯了错误

mCommand.Parameters.Add("@_C",SqlDbType.Float);
    mCommand.Parameters["@_C"].Direction = ParameterDirection.Output;
    mCommand.Parameters.Add("@_P", SqlDbType.Float);
     mCommand.Parameters["@_P"].Direction = ParameterDirection.Output;
将SqlDbType更改为MySqlDbType

  mCommand.Parameters.Add("@_C",MySqlDbType.Float);
    mCommand.Parameters["@_C"].Direction = ParameterDirection.Output;
    mCommand.Parameters.Add("@_P", MySqlDbType.Float);
     mCommand.Parameters["@_P"].Direction = ParameterDirection.Output;

谢谢你,现在可以工作了。但现在我面临新的问题,第一次调用它工作,第二次调用它显示参数“@u C”已经定义。我该怎么解决呢?帮帮我