2012-01-11 8 views
2

初めてWebMatrixを試していて、さまざまなフォーラムに基づいて、ストアドプロシージャ(SQL Server 2008)を実行するコードをまとめましたが、出力値を取得する必要がありますストアドプロシージャをOUTPUTパラメータに戻します。OUTパラメータを使用したWebmatrix/Razorおよびストアドプロシージャ

私は以下のコードを使用します。私はこれを実行すると

@(
    var strInputParam = "Test"; 
    var strOutputParam = ""; 
    var db = Database.Open("mydatabase"); 
    var selectQueryString = "EXECUTE dbo.SP_Test @0, @1"; 
    //var selectQueryString = "EXECUTE dbo.SP_Test @0, @1 OUTPUT"; 
    db.Execute(selectQueryString, strInputParam, strOutputParam); 
} 

、手順が実行されますが、「strOutputParamは、」実行後に空のままです。私は、代わりにコメント付きコードでバージョンを試してみましたが、それも空の値を戻します。

OUTPUTパラメータの値を取得するために必要なことはありますか?

ありがとうございました!

答えて

0

データベースヘルパーは出力パラメータをサポートしていません。ストアドプロシージャで動作するようには設計されていませんでした。代わりにプレーンADO.NETを使用することができます。

+0

ありがとうマイク。私は定期的なプログラミングに戻らなければならないと思う。一度私は一緒に物事をまとめることができると思ったとホイールを再発明する必要はありません:-( – user1142216

0

私はそれが遅れている知っているが、念のために他のいくつかのいずれかが答えを望んでいる、

クエリ1つの値のみを返す場合:

var strOutputParam = db.QueryValue(selectQueryString, strInputParam, strOutputParam); 

あなたのクエリは、行全体を返した場合:

var strOutputParam = db.QueryValue(selectQueryString, strInputParam, strOutputParam); 
var col1 = strOutputParam.col1; 
var col2 = strOutputParam.col2; 

あなたのクエリが複数の行を返す場合:

foreach (var strOutputParam in db.QueryValue(selectQueryString, strInputParam, strOutputParam){ 

} 
関連する問題