VB.NET导出SQL Server Varbinary数据时出现冗余字符问题
解决VB.NET导出Varbinary数据时出现冗余字符的问题
问题根源在于你使用了BinaryFormatter.Serialize方法——这个方法是用来序列化.NET对象的,它会在原始二进制数据前后添加额外的对象元数据(比如类型标识、结构描述信息),这就是你看到的冗余字符。而T-SQL脚本是直接将Varbinary字段的原始二进制内容写入文件,因此没有这些多余信息。
修改后的VB.NET代码直接提取原始二进制数据,无需经过序列化步骤:
' 从DataRow中直接提取Varbinary数据并转为字节数组 Dim binaryData As Byte() = DirectCast(aRow("VarBinaryData"), Byte()) ' 将原始二进制数据写入文件 File.WriteAllBytes("C:\Temp\NG Annotation\" & aRow("page_id").ToString() & ".art", binaryData)
说明:
- SQL Server的Varbinary字段返回的数据本身就是
Byte()类型,直接通过DirectCast转换即可拿到原始二进制内容 - 跳过
BinaryFormatter序列化步骤,避免了额外元数据的生成,导出的文件就会和T-SQL脚本导出的完全一致
内容的提问来源于stack exchange,提问作者Peter Sun
相关产品推荐
相关产品推荐

