Ошибка 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();
Другие вопросы по тегам