vb.net - 从 MS SQL varbinary 保存本地文件
问题描述
我正在尝试使用 UiPath 保存存储在 SQL db 中的本地文档。它从execute query
活动返回一个DataTable
包含一列的值(“数据”)。
如果我没有错,我需要将DataTable.rows(0)(“Data”)
(studio 将其解释为object
) 转换为字节数组。
我使用了调用代码,但文件已损坏:
Dim _MemoryStream As New System.IO.MemoryStream()
Dim _BinaryFormatter As New System.Runtime.Serialization.Formatters.Binary.BinaryFormatter()
_BinaryFormatter.Serialize(_MemoryStream, inputObj)
_MemoryStream.ToArray()
File.WriteAllBytes(“C:\Users\Desktop\test.tiff”, _MemoryStream.ToArray())
解决方案
除非您在保存时序列化对象,我对此表示怀疑,否则没有理由在检索时尝试反序列化对象。a 中的每个字段DataRow
都作为Object
引用返回,因为它必须支持任何类型的对象,但该对象仍然有自己的类型。如果您保存了二进制数据,那么该类型将是Byte()
,即Byte
数组。有点像File.WriteAllBytes
需要一个Byte
数组:
File.WriteAllBytes(“C:\Users\Desktop\test.tiff”, DirectCast(inputObj, Byte()))
这就是我希望你需要做的。它确实取决于您首先如何保存数据,但如果您使用过File.ReadAllBytes
,Image.Save
那么这应该可以完成工作。如果没有,请首先向我们展示您是如何存储数据的。
推荐阅读
- makefile - 用于创建新 python 的 makefile
- ibm-doors - 在不打开模块的情况下获取属性
- django-templates - 使用 django 模板在我的 html 中可视化 django-table2
- macos - 在哪里可以找到 Apple M1 的 Metal 功能集?
- node.js - 使用passport js的多用户类型认证(用户和教师)
- reactjs - 使用frontity时,在编辑器中更改源代码,浏览器显示原始内容
- python - 如何在python中将数字转换为紧凑格式以进行图表?
- conda - 无法使用 conda 安装 htslib v1.12
- ruby-on-rails-6 - 如何从 Webpacker 5.2.1 升级到 6.0.0.beta.7?
- java - 如果我的文件中的数据包含值的分隔符 (ç),该怎么办