首页 > 解决方案 > 从 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())

标签: vb.netuipath

解决方案


除非您在保存时序列化对象,我对此表示怀疑,否则没有理由在检索时尝试反序列化对象。a 中的每个字段DataRow都作为Object引用返回,因为它必须支持任何类型的对象,但该对象仍然有自己的类型。如果您保存了二进制数据,那么该类型将是Byte(),即Byte数组。有点像File.WriteAllBytes需要一个Byte数组:

File.WriteAllBytes(“C:\Users\Desktop\test.tiff”, DirectCast(inputObj, Byte()))

这就是我希望你需要做的。它确实取决于您首先如何保存数据,但如果您使用过File.ReadAllBytesImage.Save那么这应该可以完成工作。如果没有,请首先向我们展示您是如何存储数据的。


推荐阅读