C# Can';我不明白!此SqlParameterCollection不包含具有ParameterName的SqlParameter。存储过程参数
我知道这个问题已经被问过很多次了,我也读过很多答案,但我不知道是什么错了。已经好几个小时了。任何帮助都将不胜感激。我只是试图调用ASP页面中的存储过程,但无法正确添加参数,导致异常,即该参数不在集合中 我对我的程序进行了如下修改,以使其简单化并隔离问题C# Can';我不明白!此SqlParameterCollection不包含具有ParameterName的SqlParameter。存储过程参数,c#,asp.net,stored-procedures,C#,Asp.net,Stored Procedures,我知道这个问题已经被问过很多次了,我也读过很多答案,但我不知道是什么错了。已经好几个小时了。任何帮助都将不胜感激。我只是试图调用ASP页面中的存储过程,但无法正确添加参数,导致异常,即该参数不在集合中 我对我的程序进行了如下修改,以使其简单化并隔离问题 ALTER PROCEDURE [dbo].[up_validateUserWithClinicCount] @HTID INT = 0, @ValidUserID INT OUTPUT, @MultiClinicF
ALTER PROCEDURE [dbo].[up_validateUserWithClinicCount]
@HTID INT = 0,
@ValidUserID INT OUTPUT,
@MultiClinicFlag INT OUTPUT
AS
DECLARE @vClinicCount INT = null
DECLARE @vUserValid INT = null
BEGIN
SET @ValidUserID = 2
SET @MultiClinicFlag = 1
END;
还有C#代码
如果您能看到我缺少的内容,请多谢。您已经有了参数的对象引用,无需从参数集合中获取它。此外,sql INT是32位的
MultiClinics = (int)pMultiClinics.Value;
要从参数集合中检索,请使用您为其提供的ParameterName:
MultiClinics = (int)cmd.Parameters["@MultiClinicFlag"].Value;
在execute之后使用@pMultiClinics而不是cmd.Parameters[“pMultiClinics”].Value的id。该参数未被称为
“pMultiClinics”
。它叫“@MultiClinicFlag”
哇,对不起。我已经很累了,对这一点还很陌生,但还是犯了一个相当愚蠢的错误。谢谢你的帮助。就是这样。它是c#中的int 32,数据库中的int。现在没问题
MultiClinics = (int)cmd.Parameters["@MultiClinicFlag"].Value;