将 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)
或其他适合您的东西
我有以下问题 - 我正在尝试将 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)
或其他适合您的东西