使用AsyncPoco调用存储过程时使用输出参数

我正在执行一个SQL Server存储过程,该过程使用AsyncPoco返回一个输出参数:

CREATE  PROCEDURE [dbo].[GenerateId]
    (@RETVAL VARCHAR(12) OUTPUT) 
AS
    DeclARE @pkgID VARCHAR(12)

    BEGIN
        SELECT @pkgID = 'ABC' + '000'
        SELECT @RETVAL = @pkgID
    END
GO

这是我的称呼方式:

var spOutput = new SqlParameter("@RETVAL",System.Data.SqlDbType.VarChar)
{
    Direction = System.Data.ParameterDirection.Output,Size = 12,};

var sql = $";EXEC [dbo].[GenerateId] @0 OUTPUT";

var response = await _dbAdapter.FetchAsync<dynamic>(sql,new object[] { spOutput });
return (string)spOutput.Value;

这是我得到的错误:

  

System.NullReferenceException:对象引用未设置为对象的实例。

     

在System.Object.GetType()
  在C:\ Aldenteware \ AsyncPoco \ code \ AsyncPoco \ Database.cs:line 2279中的AsyncPoco.Database.FormatCommand(String sql,Object [] args)

kim_heechul 回答:使用AsyncPoco调用存储过程时使用输出参数

我知道了:

var spOutput = new SqlParameter("@RETVAL",System.Data.SqlDbType.VarChar)
{
    Direction = System.Data.ParameterDirection.Output,Size = 12,};

var sql = $";EXEC [dbo].[GenerateId] @@RETVAL = @0 OUTPUT";
var sqlClass = new Sql();
var s = sqlClass.Append(sql,spOutput);

var response = await _dbAdapter.ExecuteAsync(s);
return (string)spOutput.Value;
本文链接:https://www.f2er.com/3120559.html

大家都在问