3

raiserrorSQL を使用し、選択した結果を C# で取得する方法があるかどうかを知りたいです。ExecuteReader()C# では、発生時に例外がスローraiserrorされますが、リーダーを使用して返されたデータをキャプチャしたいと考えています。

以下は簡単な例です。これが不可能な場合はraiserror、一般的なケースとselect特定のケースに使用します。

if (some-error)
begin
    select  @Message = 'ERROR: script made a booboo',
            @State = 'State Info'
    raiserror (@Messsage, 16, 1)
    goto exit_sp
end

exit_sp:
    select  @Message 'Message', @State 'State'
4

1 に答える 1

2

重大度を (メモリから) 10 以下に下げると、例外は発生しませんがInfoMessage 、接続のイベントを介して使用できます。ただし、TDS の仕組みにより、すべての結果の最後まで etc を実行する必要があることに注意くださいRead()。たとえば、複数の があり、次にがあり、data-reader を削除する前に最初のものだけを読み取った場合、メッセージが表示されない可能性があります (TDS は強制終了されます)。selectraiserrorselect

于 2011-07-21T09:06:04.710 に答える