Ошибка sqlParameterCollection
У меня есть определение процедуры
public int Add_Nastavenie(out int typNastav, int nastavID, string hod)
{
ResetParameters();
cmd.CommandText = "add_Nastav";
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter sqlParameter;
var sqlParameterOut = new SqlParameter("@TypNastav", SqlDbType.Int);
sqlParameterOut.Direction = ParameterDirection.Output;
sqlParameter = new SqlParameter("@NastavenieID", SqlDbType.Int);
sqlParameter.Direction = ParameterDirection.Input;
sqlParameter.Value = nastavID;
cmd.Parameters.Add(sqlParameter);
sqlParameter = new SqlParameter("@Hodnota", SqlDbType.NVarChar, 100);
sqlParameter.Direction = ParameterDirection.Input;
sqlParameter.Value = hod;
cmd.Parameters.Add(sqlParameter);
var sqlParameterRet = new SqlParameter("retValue", SqlDbType.Int);
sqlParameterRet.Direction = ParameterDirection.ReturnValue;
cmd.ExecuteNonQuery();
typNastav = (int)sqlParameterOut.Value;
return (int)cmd.Parameters["retvalue"].Value;
}
Я называю эту процедуру так:
dataConnector.Add_Nastavenie(out typNastav,nastavID,hod);
Это ошибка показа:
Параметр sql с именем_параметра 'retvalue' не содержится в этом sqlParameterCollection
Как я могу это исправить?
1 ответ
Решение
Вы получаете это, потому что вы не добавили возвращаемый параметр в команду. ты пропустил это
cmd.Parameters.Add(sqlParameterRet );
до
cmd.ExecuteNonQuery();