2011-12-23 13 views
3

PetaPocoを使用して出力パラメータを設定しようとしています。それは3. PetaPocoで正しく、この設定です私を返し、私はSQL Serverに対して直接この文を実行したときにもかかわらず、しかしPetaPocoとストアドプロシージャの出力パラメータ?

var ctx = new CustomDBDatabase(); 
var total = new SqlParameter("Total", System.Data.SqlDbType.Int); 
total.Direction = System.Data.ParameterDirection.Output; 

var results = ctx.Query<DBEntity>("exec GetDBEntities @StartIndex, @MaxIndex, @TotalCount = @Total out", 
    id, start, max, total); 

int totalCount = (int)total.Value; 

total.value戻りヌル:私は、このサンプル・オンラインを使用して誰かを見つけましたか?出力パラメータはサポートされていますか?

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

答えて

8

これはサポートされています。しかし、あなたの現在の構文はとにかく間違っています。

var ctx = new CustomDBDatabase(); 
var total = new SqlParameter("TotalCount", System.Data.SqlDbType.Int); 
total.Direction = System.Data.ParameterDirection.Output; 

var results = ctx.Query<DBEntity>("exec GetDBEntities @StartIndex, @MaxIndex, @TotalCount OUTPUT", new { StartIndex = start, MaxIndex = max, TotalCount = total}); 

int totalCount = (int)total.Value; 

何かこれはうまくいくはずです。 SQL構文はあまりよく分かりませんが、これはあなたのやり方であなたを得るはずです。

+0

MySqlに似たようなものを書くにはどうすればよいですか? – Dmitry

+0

SPを呼び出すためのmysql構文を使用します。 – Schotime

+0

戻り値も必要な場合はどうなりますか? –

関連する問題