【问题标题】:PetaPoco and output parameters from stored procedures?PetaPoco 和存储过程的输出参数?
【发布时间】:2012-01-26 14:01:00
【问题描述】:

我正在尝试使用 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 返回 null,即使当我直接针对 SQL Server 运行此语句时,它也会返回 3。此设置是否适用于 PetaPoco?是否支持输出参数?

谢谢。

【问题讨论】:

    标签: stored-procedures petapoco output-parameter


    【解决方案1】:

    这是支持的。但是无论如何,您当前的语法是错误的。

    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 语法,但这应该可以帮助您。

    【讨论】:

    • 如何为 MySql 编写类似的东西?
    • 使用mysql语法调用SP。
    • 如果还需要返回值怎么办?
    猜你喜欢
    • 2012-01-31
    • 2011-10-20
    • 1970-01-01
    • 1970-01-01
    • 2013-06-05
    • 1970-01-01
    • 2012-01-25
    • 1970-01-01
    • 2011-11-24
    相关资源
    最近更新 更多