将输出参数提供给sqlparametercollection导致错误(Varbinary)

时间:2010-06-14 09:59:40

标签: c# sqlparameters

我想为我的存储过程提供输出参数。此输出proc返回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 个答案:

答案 0 :(得分:3)

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

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

这将返回任何大小。

答案 1 :(得分:2)

您必须为Size参数赋值:

 new SqlParameter("@Bytes", SqlDbType.VarBinary, 8000)