Vb.net 如何使用VB在phpmyadmin数据库中保存和检索指纹模板

Vb.net 如何使用VB在phpmyadmin数据库中保存和检索指纹模板,vb.net,phpmyadmin,fingerprint,biometrics,Vb.net,Phpmyadmin,Fingerprint,Biometrics,我们正在使用数字角色进行生物特征识别。我们已经可以保存员工ID、员工姓名和分配的手指。我们的问题是,我们不知道如何将指纹模板保存到数据库并检索它,以便生物特征扫描仪仍然可以读取和验证它。文件扩展名为“.ftp” 代码: 我知道这是一篇老文章,但这里的代码块可能会有所帮助 在保存时,我使用了这个 For Each template As DPFP.Template In Data.Templates If Not template Is Nothing

我们正在使用数字角色进行生物特征识别。我们已经可以保存员工ID、员工姓名和分配的手指。我们的问题是,我们不知道如何将指纹模板保存到数据库并检索它,以便生物特征扫描仪仍然可以读取和验证它。文件扩展名为“.ftp”

代码:


我知道这是一篇老文章,但这里的代码块可能会有所帮助

在保存时,我使用了这个

       For Each template As DPFP.Template In Data.Templates    
            If Not template Is Nothing Then 
                cmd = New MySqlCommand("INSERT INTO employeefp " +
                                  "SET No=@No, " +
                                  "FP=@FP " +
                                  " ", conn)

                cmd.Parameters.Add(New MySqlParameter("@No", txtEmpNo.Text))
                cmd.Parameters.Add(New MySqlParameter("@FP", template.Bytes))

                cmd.ExecuteNonQuery()

            End If
        Next
在从DB进行验证时,我使用了这个

       For Each template As DPFP.Template In Data.Templates    
            If Not template Is Nothing Then 
                cmd = New MySqlCommand("INSERT INTO employeefp " +
                                  "SET No=@No, " +
                                  "FP=@FP " +
                                  " ", conn)

                cmd.Parameters.Add(New MySqlParameter("@No", txtEmpNo.Text))
                cmd.Parameters.Add(New MySqlParameter("@FP", template.Bytes))

                cmd.ExecuteNonQuery()

            End If
        Next
  • 当表单加载时,我会取出所有的指纹

        Dim cmd As New MySqlCommand("SELECT * FROM employeefp  ", conn)
        Dim rdr As MySqlDataReader = cmd.ExecuteReader()
    
        While (rdr.Read())
            Dim MemStream As IO.MemoryStream
            Dim fpBytes As Byte()
    
            fpBytes = rdr("FP")
            MemStream = New IO.MemoryStream(fpBytes)
    
            Dim templa8 As DPFP.Template = New DPFP.Template()
            templa8.DeSerialize(MemStream)
    
            Dim tmpObj As New AppData
            tmpObj.No = rdr("No").ToString()
            tmpObj.Template = templa8
            FPList.Add(tmpObj)
        End While
    
  • 注意:Dim FPList As List(Of AppData)=New List(Of AppData)//除了现有模板(包含多个打印)之外,您还可以在我刚刚添加的SDK模板(包含一个打印)中找到此定义

  • 比较机器上的当前样本

    Sub OnComplete(ByVal Control As Object, ByVal FeatureSet As DPFP.FeatureSet, ByRef EventHandlerStatus As DPFP.Gui.EventHandlerStatus) Handles VerificationControl.OnComplete
    Dim printFound As Boolean = False
    VerifiedFPData = New AppData
    Try
        For Each FPData As AppData In FPList
            Dim tmplateData As New DPFP.Template
            tmplateData = FPData.Template
            Dim compareTo As New DPFP.FeatureSet
            compareTo = FeatureSet
    
            Dim ver As New DPFP.Verification.Verification()
            Dim res As New DPFP.Verification.Verification.Result()
    
            If Not tmplateData Is Nothing Then
                ver.Verify(FeatureSet, tmplateData, res)
    
                If res.Verified Then
                    EventHandlerStatus = DPFP.Gui.EventHandlerStatus.Success
                    printFound = True
                    VerifiedFPData = FPData
                    Exit For ' success
                End If
            End If
        Next
    Catch ex As Exception
        MessageBox.Show("verification error")
    End Try
    
    
    If printFound Then
        //TO DO 
    Else
        EventHandlerStatus = DPFP.Gui.EventHandlerStatus.Failure
        // TODO
    End If
    
    端接头


  • 希望它能帮助某人:)

    上面的答案中缺少一些代码。类appdata的代码缺失。这些代码在类appdata中未首先声明tmpObj时出错<代码>尺寸tmpObj作为新的AppData tmpObj.No=rdr(“No”).ToString() tmpObj.Template=templa8 FPList.Add(tmpObj)