У меня есть хранимая процедура, которая возвращает varchar(160) в качестве выходного параметра хранимой процедуры.
Все работает нормально, когда я использую ExecuteNonQuery, я всегда возвращаю ожидаемое значение.
Однако, как только я переключаюсь на использование BeginExecuteNonQuery, я получаю нулевое значение для вывода.
Я использую connString + "Асинхронная обработка = true;" в обоих случаях.
К сожалению, в моем случае BeginExecuteNonQuery примерно в 1,5 раза быстрее... но мне действительно нужен выходной параметр.
Спасибо!
РЕДАКТИРОВАТЬ: вот как я обрабатываю обратный вызов BeginExecuteNonQuery (я использую .net 4.0...)
Dim resp as String=""
cmd.BeginExecuteNonQuery(Sub(result As IAsyncResult)
Dim c As SqlCommand = Nothing
Try
c = CType(result.AsyncState, SqlCommand)
c.EndExecuteNonQuery(result)
**resp = CStr(c.Parameters("@response").Value)**
Catch ex As Exception
WriteLog("ERR - LogRequest - " & ex.Message)
Finally
c.Connection.Close()
c.Dispose()
End Try
End Sub, cmd)