2013-02-08 2 views
4

Я новичок на asp.net с vb.code заПроцедура или функция «» ожидает параметр «», который не поставлялся

я пытаюсь получить от значения SQL

мой код

Dim apps As New MyApps 
apps.OpenConnection() 

Dim esql As New SqlCommand 
esql.Connection = apps.oConn 

esql.CommandText = "cekdatauploads" 
esql.Parameters.Add("@value", SqlDbType.Int, 2) 

esql.ExecuteNonQuery() 
esql.Parameters("@value").Direction = ParameterDirection.Output 

Dim nilai As Integer = esql.Parameters("@value").Value 

apps.CloseConnection() 

ошибка

The parameterized query '(@value int)cekdatauploads' expects the parameter '@value', which was not supplied. 

я уже пытаюсь выполнить магазин prosedure

declare @p int 
exec [cekdatauploads] @p output 
print @p 

и возвращает 0 не пустое значение.

Заранее благодарен!

+2

Я бы установил направление вывода перед выполнением команды. –

ответ

7

попробуйте изменить две линии.

esql.CommandText = "cekdatauploads" 
esql.Parameters.Add("@value", SqlDbType.Int, 2) 
esql.Parameters("@value").Direction = ParameterDirection.Output 
esql.ExecuteNonQuery() 

еще одна вещь, если cekdatauploads это strored процедура, вы должны объявить его в CommandType

esql.CommandType = CommandType.StoredProcedure 
esql.CommandText = "cekdatauploads" 
esql.Parameters.Add("@value", SqlDbType.Int, 2) 
esql.Parameters("@value").Direction = ParameterDirection.Output 
esql.ExecuteNonQuery() 
+0

+1 для упоминания CommandType. Бросил меня на скот. – nutsch

3

Вы выполняете процедуру, прежде чем вы рассказываете команду, что это выходной параметр, по умолчанию предполагается, что это входной параметр .:

esql.Parameters("@value").Direction = ParameterDirection.Output 
esql.ExecuteNonQuery() 
Смежные вопросы

 Смежные вопросы