0

ここで、コードのどこが間違っているのかわからない小さな問題に遭遇します

    Private Sub SimpleButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SimpleButton1.Click
    Dim str As New MemoryStream
    Dim Serializetemplate As New DPFP.Template
    Serializetemplate.Serialize(str)
    Dim serializedTemplate As Byte() = str.ToArray()

    'save to database
    opencon1()
    Dim cmd As MySql.Data.MySqlClient.MySqlCommand
    cmd = New MySql.Data.MySqlClient.MySqlCommand
    cmd.Parameters.AddWithValue("?imagedata", serializedTemplate)
    cmd.Parameters.AddWithValue("?userid", txtEmpid.Text)
    cmd.CommandText = "UPDATE master SET fp1=?imagedata WHERE userid=?userid"
    cmd.CommandType = CommandType.Text
    cmd.Connection = con1
    cmd.ExecuteNonQuery()
End Sub

Serializetemplate.Serialize(str)で、 Bad Serializationというエラーメッセージでエラーが発生します。

誰もこのエラーに遭遇して解決しましたか?

4

1 に答える 1

1

ジョセフ 私は VB があまり得意ではありませんが、私が見る限り、あなたは新しい DPFP.Template を宣言し、それをメモリ ストリームにシリアル化しています。なぜあなたはこれをやっている?

SDK を登録または検証すると、イベント ハンドラーでテンプレートが提供されます。

private void Enrolled(object Control, int Finger, DPFP.Template Template, ref DPFP.Gui.EventHandlerStatus Status)
{
   if (Status == DPFP.Gui.EventHandlerStatus.Success)
   {
      // Here you can use the template as  Template.Bytes
   }
}

テンプレートは既に byte[] としてシリアル化されています。

テンプレート(空白)を作成するだけで、シリアル化しようとすると例外がスローされると思います。

于 2012-04-26T01:47:37.637 に答える