0

从数据库中读取二进制数据,我需要将其转换回数字角色指纹模板。我不熟悉序列化和反序列化,所以我可以使用一些帮助。这是我尝试过的:

Dim rsBioData As SqlDataReader = SQL.ExecuteReader
Dim byteTemplate As Byte
Dim memStreamTemplate As MemoryStream
If rsBioData.HasRows Then
    While rsBioData.Read
        byteTemplate = rsBioData("BiometricData")
        memStreamTemplate = New MemoryStream(byteTemplate)
        Me.Template = DirectCast(template.DeSerialize(memStreamTemplate), DPFP.Template)
    End While
End If
rsBioData.Close()

我收到一个错误,即 template.DeSerialize(memStreamTemplate) 没有创建值。

顺便说一句,这是我序列化对象以将其放入数据库的方式。我假设这部分工作正常,因为二进制数据显示在 SQL 服务器中——只是无法将其读回查看。

Dim str As New MemoryStream
Enroller.Template.Serialize(str)
Dim serializedTemplate As Byte() = str.ToArray()
SQL.Parameters.AddWithValue("biometricData", serializedTemplate)

谢谢

4

1 回答 1

0

这就是我最终能够做到的方式。我第一次如此接近。

            byteTemplate = rsBioData("BiometricData")
            memStreamTemplate = New MemoryStream(byteTemplate)
            Me.Template.DeSerialize(memStreamTemplate)
于 2010-10-29T06:18:07.233 回答