C# 在集合my SQL存储过程中未找到参数?

C# 在集合my SQL存储过程中未找到参数?,c#,stored-procedures,C#,Stored Procedures,我有这样的参数 Mysql_param[0] = new MySqlParameter("p_MainID", SqlDbType.Int); Mysql_param[0].Value = Convert.ToInt32 ( MID); Mysql_param[1] = new MySqlParameter("p_DetailID", SqlDbType.Int); Mysql_param[1].Value = Convert.T

我有这样的参数

        Mysql_param[0] = new MySqlParameter("p_MainID", SqlDbType.Int);
        Mysql_param[0].Value = Convert.ToInt32 ( MID);

        Mysql_param[1] = new MySqlParameter("p_DetailID", SqlDbType.Int);
        Mysql_param[1].Value = Convert.ToInt32( DID);

        Mysql_param[2] = new MySqlParameter("p_UserID ", SqlDbType.Int);
        Mysql_param[2].Value = Convert.ToInt32(USERID== "" ? "0" : USERID);

        MySqlDataAdapter da = new MySqlDataAdapter(pobj_cmd);
            ds = new DataSet();
            da.Fill(ds);
我有这样的存储过程

CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_HistoryInsertion`(
       IN p_MainID  int 
      , IN p_DetailID int
      , IN p_USERID   int
)
    INSERT INTO history (`MainID`, `DetailID`, )
    VALUES (p_MainID, p_DetailID);              
但我有一个错误:

{“在集合中找不到参数'p_USERID'

实际上,
p_USER
在数据库中是自动递增的,稍后在更新、删除和选择操作中使用,因此我必须在每个过程中按原样传递它,因此与该city_id相关的相同错误出现在每个超过6个存储过程中


每个列的数据类型都是
INT

我在代码中注意到的第一件事是,参数名称“CITY\u ID”后面有一个额外的空格。您提到的参数名是“CITY\u ID”,我认为应该是“CITY\u ID”

这应该能解决你的问题。如果您仍然看到问题,请查看下面的解决方案

在存储过程中有参数p_CMP_ID、p_BRC_ID和p_CITY_ID。 但根据您的代码,您只创建了一个正确名称为“p_CMP_ID”的参数

其他两个参数的名称与预期的名称不同

将参数名称“BRC_ID”更改为“p_BRC_ID”,将“CITY_ID”更改为“p_CITY_ID”,应该可以解决您的问题

感谢和问候, 切坦·兰帕里亚


Blockquote

是这也是一个问题
pobj_cmd.Parameters.AddWithValue(MySQLParam[x].ParameterName,MySQLParam[x].Value)