代码之家  ›  专栏  ›  技术社区  ›  GurdeepS

向sqlparameterCollection提供输出参数导致错误(varbinary)

  •  3
  • GurdeepS  · 技术社区  · 14 年前

    我想为我的存储过程提供一个输出参数。此输出过程正在返回 byte[] . 我该怎么做?

    如果我执行以下操作:

    command.Parameters.Add(new SqlParameter("@Bytes", SqlDbType.VarBinary));
    command.Parameters[1].Direction = ParameterDirection.Output;
    

    我得到:

    System.InvalidOperationException: Byte[][1]: the Size property has an invalid size of 0. This stored proc works fine in SQL Server when I execute it via the SSMS option "Execute Stored Procedure).
    

    有什么想法吗? 谢谢

    2 回复  |  直到 9 年前
        1
  •  2
  •   Henk Holterman    14 年前

    必须为大小参数提供一个值:

     new SqlParameter("@Bytes", SqlDbType.VarBinary, 8000)
    
        2
  •  3
  •   Simon C    13 年前

    如果您不知道返回大小,则使用-1,例如

    New SqlParameter("@PreviewImage", SqlDbType.VarBinary) With {.Direction = ParameterDirection.Output, .Size = -1}
    

    这将返回任何尺寸。

    推荐文章