将 bytearray 保存到 SQL 服务器中的 VarBinary 列仅插入一个字节

saving bytearray to VarBinary column in SQL Server inserts only one byte

我有以下问题 - 我正在尝试将 byte[] 保存到数据库,但我发现它只能用于一个字节。

我有多个浮点数,我将其转换为 byte[] 并将其用作参数:

param = new SqlParameter(name, type, ((byte[])value).Length);

类型为VarBinary,值为字节数组

我将该参数添加到我的 SqlCommand 中,就在它被执行之前,该参数中的整个字节数组 "sits" 和该参数的 _msize 是正确的(20 代表 20 个字节我认为是正确的)。我的 SQL 服务器显示我只保存了 1 个字节,还试图取回它我只得到一个字节。我的专栏是 VarBinary(200).

有什么建议吗?

如果您使用的是存储过程,并且您已将参数定义为 varbinary - 您将获得 1 字节的默认长度 作为每 MSDN documentation:

When n is not specified in a data definition or variable declaration statement, the default length is 1. When n is not specified with the CAST function, the default length is 30.

所以如果你有一个存储过程

@MyData VARBINARY

那么您只有一个字节 - 您需要将其更改为

@MyData VARBINARY(200) 

或其他适合您的东西