2012-04-26 67 views
0

這裏見面了一點問題,我不知道哪裏錯了代碼系列化的DigitalPersona

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)出現錯誤消息壞系列化

任何人都遇到過這個錯誤並解決它?

回答

0

Joseph我對VB並不是很好,但據我看到你聲明瞭一個新的DPFP.Template,然後將它序列化到你的內存流中。你爲什麼做這個?

既然你是註冊或驗證SDK'll給你的事件處理程序

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 
    } 
} 

模板已序列化爲字節[]的模板。

我認爲,假設你只是創建模板(空白),那麼當你嘗試序列化它會拋出異常。

+0

如果我不聲明一個新的DPFP.Template,我會收到一個錯誤「對象引用未設置爲對象的實例」。 這是我不明白 我聲明這個私人模板作爲DPFP.Template代碼頂部的 – 2012-04-26 02:02:32

+0

當然,但是錯誤正是@JosephGoh,最近創建的模板不能序列化,因爲它是空。爲什麼你要創建這個新的模板呢?該模板必須來自生物識別傳感器,或者必須在存儲後從回購站加載。我不明白你爲什麼要實例化一個新的。如果您需要一個空對象,只需將您存儲模板的字節[]分配爲空。 – 2012-04-26 02:15:52