读VARBINARY(MAX)从SQL Server到C#
我需要从SQL Server 2008中的类型列的一个是VARBINARY(MAX)
读取数据行。在C#中,我想使用out参数来读取它(并且给定的场景大多满足需求)。读VARBINARY(MAX)从SQL Server到C#
但我需要指定的参数变量的大小,填补了C#的变量。 在这里,我认为8000就足够了...但谁知道:
database.AddOutParameter(command, "vbCertificate", DbType.Binary, 8000);
所以问题是:
- 什么是MAX的数量规模为SQL Server 2008?
- 可以使用这个场景的参数吗?
正如@marc_s所说,我只想添加一些东西。
有两种数据类型
二进制 [(N)]
固定长度,长度为n字节,其中n是从1到8000的值的二进制数据。存储大小为n个字节。
VARBINARY [(N | MAX)]
可变长度的二进制数据。 n可以是从1到8,000的值。 max表示最大存储大小是2^31-1(等于int.MaxValue,即2,147,483,647)个字节。存储大小是输入数据的实际长度+ 2个字节。输入的数据可以是0字节。
如果您指定最大那么你关注的应该是用VARBINARY而非二进制
database.AddOutParameter(命令, “vbCertificate”,DbType.Binary,8000);
database.AddOutParameter(command,“vbCertificate”,SqlDbType.VarBinary,int.MaxValue);
我还没有看到一个明确的大小任何地方MAX。你有没有尝试过使用DbType.Object执行此操作?这在msdn上被定义为任何未明确定义的类型的一般类型。我会试试看看它是否有效。否则,我可能会坚持你所选择的DbType.Binary。
的最大尺寸为VARBINARY(MAX)
是2GB的数据 - 2'147'483'648字节。
在你的情况,在C#中定义它的时候,我会建议使用int.MaxValue
以提供价值。
是的,如果你想获得的字节数组从SQL Server 2008表背,那么你就可以最肯定使用out
参数。
最大类型的SqlClient大小为`-1`。该框架将此理解为“最大”类型。 – 2011-02-09 17:48:41
@Remus Rusanu:好的,谢谢 - 很高兴知道! (但我也没有int.MaxValue的麻烦,到目前为止:-) – 2011-02-09 17:54:22