5

ac# プロジェクトでは、次のようにストアド プロシージャを呼び出します。

System.Data.Linq.DataContext dataContext = MembershipContext.GetContext(connectionString);
int returnValue = dataContext.ExecuteCommand("EXEC usp_SomeProcedure {0}, {1}, {2}", param1, param2, param3);

ただし、ExecuteCommand は、ストアド プロシージャの戻り値ではなく、影響を受ける行の数を返します。この値を取得する最も簡単な方法は何でしょうか。SP は成功すると 0 を返し、エラーが発生した場合は正の int 値を返すため、これが必要です。

今のところ、ストアド プロシージャは RETURN を使用して戻り値を出力します。ただし、これを SELECT に変更することも、必要に応じて出力パラメーターを使用することもできます。

4

2 に答える 2

4

ストアド プロシージャから戻り値を取得するには、CommandType を CommandType.StoredProcedure に設定する必要があると思います。ここで受け入れられた回答を参照してください: ADO.NET のストアド プロシージャからの戻り値の取得

于 2012-07-25T16:56:46.673 に答える
2

DataContextLinq2Sql マッピング機能が必要ない場合は、SP の呼び出しには使用しないでください。down.with.the.bass が示すSqlCommandように使用するだけです。

于 2012-07-25T20:03:08.070 に答える