ストアドプロシージャの出力パラメータとしてvarchar(160)を返すストアドプロシージャがあります。
ExecuteNonQueryを使用すると、すべてが正常に機能します。常に期待値が返されます。
ただし、BeginExecuteNonQueryを使用するように切り替えると、出力にnull値が返されます。
connString + "Asynchronous Processing=true;"を使用しています 両方の場合において。
悲しいことに、私の場合、BeginExecuteNonQueryは約1.5倍高速です...しかし、実際には出力パラメーターが必要です。
ありがとう!
編集:これは私がBeginExecuteNonQueryコールバックを処理している方法です(私は.net4.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)