0

Ado.net では、コードは入力パラメーターと出力パラメーターを使用してストアド プロシージャを呼び出しています。

入力パラメーターの一部がオプションである (SP にデフォルト値がある) 場合、必要でない限り、コードでパラメーター値を定義して送信する必要がないことを理解しています。

私の質問は次のとおりです。オプションの出力パラメーターにも同じことが当てはまりますか? コードはオプションの (デフォルト値を持つ) SP 出力パラメータを無視できますか?

自分でテストすることもできましたが、現在は実際の例がなく、時間がありません。

ありがとうございます。

4

2 に答える 2

3

はい。パラメータにデフォルト値がある場合、パラメータの方向 (INPUT または OUTPUT) に関係なく、安全に省略できます。プロシージャが ADO​​.Net から呼び出されるという事実は、まったく関係ありません。例えば:

create procedure usp_test
    @a int = 1 output,
    @b int = 2
as
begin
    set @a = @b;
end 
go

exec usp_test 

ビジネス ルールの観点から実行しても安全かどうか (つまり、OUTPUT パラメーターの戻り値を無視すること) は、手順とアプリの仕様に完全に依存します。

于 2012-04-09T19:39:39.960 に答える
1

編集:ここで間違っていたことが判明しましたが、情報SqlParameterが役立つ可能性があるため、回答を残しておきます。不正確で申し訳ありません。

私はそうは思いません。パラメータを送信する必要があります。ADO.NET では、プロパティを に設定してOUTPUTを追加することで実現されます。SqlParameterParameterDirectionParameterDirection.Output

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlparameter.direction.aspx

http://msdn.microsoft.com/en-us/library/system.data.parameterdirection.aspx

于 2012-04-09T19:27:56.347 に答える