今日、友人から、データ アクセス アプリケーション ブロックでストアド プロシージャの戻り値を取得する方法を尋ねられました。以前に書いた記事でこの問題について言及されていないことがわかりました。具体的な解決策は次のとおりです。 1.
まず、戻り値を含むストアド プロシージャを作成します。例として、次のようにストアド プロシージャを作成します。
procテストを作成する
(
@id int
)
asdeclare
@flag int
select * from person where id=@id
if @@rowcount > 0
@flag=1 を設定します
それ以外
set @flag=0
return @flag
プログラム内でこの戻り値を取得するために使用するメソッドは次のとおりです。
[TestMethod]
public void TestReturnValue()
{
データベース db = DatabaseFactory.CreateDatabase();
DbCommand dbcomm = db.GetStoredProcCommand("test");
db.AddInParameter(dbcomm, "@id", DbType.Int32,1);
// キーはここにあり、ReturnValue 型のパラメータを追加します
db.AddParameter(dbcomm, "@RETURN_VALUE", DbType.String, ParameterDirection.ReturnValue, "", DataRowVersion.Current, null);
db.ExecuteNonQuery(dbcomm);
int testvalue = (int)dbcomm.Parameters["@RETURN_VALUE"].Value
;
}
上記のコードにより、プログラム内のストアド プロシージャの戻り値を取得できます。
以前に書いた記事では触れていないことがたくさんあるかもしれませんが、より多くの友人が私に意見をくれることを願っています。