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