gpt4 book ai didi

c# - 字节数组如何存储在 Varbinary 类型的 sql server 表列中?

转载 作者:太空狗 更新时间:2023-10-30 00:48:49 25 4
gpt4 key购买 nike

我有一个要求,我想使用 C# 代码将字节数组存储在 Varbinary 类型的 sql server 表列中。现在,当我尝试这样做时,我在 sql server 表中得到一个值为 "0x4A6974656E6472612053616E6B686C61" 的字节数组 a[] = { 74, 105, 116, 101, 110, 100 , 114, 97, 32, 83, 97, 110, 107, 104, 108, 97}。我不确定这是怎么做到的。我得到的值实际上是每个十进制数的十六进制表示。

是不是像 sql server 在将字节数组存储到 varbinary sql 表列时执行一些内部转换?

最佳答案

您会看到存储在字段中的实际二进制值的十六进制字符串表示形式,因为这是表示字节的半可读版本。还应该如何显示?

字符串表示和实际的字节是不一样的。大多数类型都是如此。如果你存储一个整数,比如 7622389,它实际上也存储为一定数量的字节(取决于字段的大小)。但是显示实际字节而不是值的字符串表示只会让人感到困惑。

对于通用二进制数据,十六进制字符串格式是逻辑字符串表示。如果字节恰好构成图像文件或其他一些众所周知的文件格式,则 SQL Server 管理工作室可以理论上显示图片的缩略图。但是由于该字段只包含通用二进制数据,它无法真正知道什么是最好的显示格式,所以它使用十六进制字符串。

当您实际从数据库中选择字段到您的 C# 程序时,您返回的通常是 byte[],有时包裹在某种容器类型中。

关于c# - 字节数组如何存储在 Varbinary 类型的 sql server 表列中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43084716/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com