从 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.ReadAllBytes
或 Image.Save
那么这应该可以完成工作。如果没有,请向我们展示您最初是如何破坏数据的。
我正在尝试使用 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.ReadAllBytes
或 Image.Save
那么这应该可以完成工作。如果没有,请向我们展示您最初是如何破坏数据的。