2011-12-23 2 views
3

PetaPoco를 사용하여 출력 매개 변수를 설정하려고합니다. 내가 SQL 서버에 직접 문을 실행할 때 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)

, 그것은 나를 3.이 설정은 PetaPoco 제대로되어 반환 :이 샘플 온라인을 사용하는 사람을 발견? 출력 매개 변수가 지원됩니까?

감사합니다.

답변

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

또한 반환 값이 필요한 경우 어떻게해야합니까? –