PetaPoco 和存储过程的输出参数?
Posted
技术标签:
【中文标题】PetaPoco 和存储过程的输出参数?【英文标题】:PetaPoco and output parameters from stored procedures? 【发布时间】: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?是否支持输出参数?
谢谢。
【问题讨论】:
【参考方案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。 如果还需要返回值怎么办?以上是关于PetaPoco 和存储过程的输出参数?的主要内容,如果未能解决你的问题,请参考以下文章