我有一个存储过程,它返回一个表值。

这是我的存储过程:

PROCEDURE [GetPermitPendingApproval]
    @permitYear int = NULL,
AS
BEGIN
        SELECT [p].[ID]
          ,[p].[PermitNumber]
          ,[p].[PermitTypeID]
          ,[p].[ApplicationDate]
          ,[u].[FirstName]
          ,[u].[MI]
          ,[u].[LastName]
          ,[u].[Suffix]
          ,[u].[ProfessionalTitle]
          ,[u].[WorksFor]
      FROM [SciCollUser] u
            INNER JOIN UserPermit up ON up.[UserID] = u.[ID]
            INNER JOIN Permit p ON p.[ID] = [up].[PermitID]
     WHERE (@permitYear IS NULL OR p.PermitYear = @permitYear)
    ORDER BY [p].[ApplicationDate] ASC;
END


我不确定我们是否可以使用PetaPoco执行存储过程并获取返回的数据作为表?请帮忙!

通常,我可以使用follow脚本执行存储过程,但这不是我想要的方式。

db.Execute("EXEC GetPermitPendingApproval @permitYear=2013");

最佳答案

您需要在EXEC之前加上分号。

var result = db.Fetch<dynamic>(";EXEC GetPermitPendingApproval @@permitYear = @0", 2013);

08-07 07:14