我有像这样的参数
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
答案 0 :(得分:1)
我在代码中注意到的第一件事是在参数名称" CITY_ID"之后有一个额外的空格。你提到的参数名是" CITY_ID"我认为应该" CITY_ID"。
这应该可以解决您的问题。如果您仍然看到问题,请查看以下解决方案。
您的存储过程中有参数p_CMP_ID,p_BRC_ID和p_CITY_ID。 但根据您的代码,您只创建一个名称正确的参数" p_CMP_ID"。
其他两个参数的名称与预期的名称不同。
更改参数名称" BRC_ID"到" p_BRC_ID"和" CITY_ID"到" p_CITY_ID"应该解决你的问题。
谢谢和问候, Chetan Ranpariya
块引用