从 MS SQL varbinary 保存本地文件

Save local file from MS SQL varbinary

我正在尝试使用 UiPath 保存存储在 SQL 数据库中的本地文档。 从 execute query activity 它 returns 一个 DataTable 具有一列(“数据”)的值。

如果我没记错的话,我需要将 DataTable.rows(0)(“Data”)(工作室将其解释为 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())

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

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

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