У меня есть хранимая процедура, которая возвращает varchar (160) в качестве выходного параметра хранимой процедуры.
Все работает нормально, когда я использую ExecuteNonQuery, я всегда возвращаю ожидаемое значение.
Однако, когда я переключаюсь на использование BeginExecuteNonQuery, я получаю нулевое значение для вывода.
Я использую connString + "Asynchronous Processing = 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)