4

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このステートメントを SQL Server に対して直接実行すると、3 が返されますが、null が返されます。これは PetaPoco で正しく設定されていますか? 出力パラメータはサポートされていますか?

ありがとう。

4

1 に答える 1

9

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

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構文についてはよくわかりませんが、これでうまくいくはずです。

于 2011-12-23T11:07:52.843 に答える