【发布时间】:2018-04-16 01:45:00
【问题描述】:
我已经设法获取生物特征模板数据,但遗憾的是我无法将其保存或直接插入到数据库中。我无法将模板转换为字节并将其转储到表中。这是我的代码:
Private Sub btnSaveFinger1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSaveFinger1.Click
Try
Dim sql As String
sql = "INSERT INTO [Kamog_HR].[dbo].[T_FingerPrintMaster] " & _
"([fpm_EmployeeID] " & _
",[fpm_FingerIndex] " & _
",[fpm_FingerPrintTemplate] " & _
",[Update_By] " & _
",[Created_Date]) " & _
"VALUES " & _
"('" & txtEmpID.Text & "' " & _
",0 " & _
",@template " & _
",'SA' " & _
",'" & Now & "') "
OpenConnection()
Dim str As New MemoryStream
Enroller.Template.Serialize(str)
ExecuteSaveFingerPrint(sql, str)
Catch ex As Exception
SetPrompt("Cannot save the fingerprint template")
Finally
CloseConnection()
End Try
End Sub
Public Sub ExecuteSaveFingerPrint(ByVal sql As String, ByVal str As MemoryStream)
Dim cmd As New SqlCommand(sql, con)
cmd.CommandTimeout = 0
Dim serializedTemplate As Byte() = str.ToArray()
Dim paramater As New SqlParameter("@template", serializedTemplate)
cmd.Parameters.Add(paramater)
cmd.ExecuteNonQuery()
End Sub
在cmd.ExecuteNonQuery 期间,它返回一个错误消息说
"Conversion failed when converting date and/or time from character string."
即使我将Created_Date 删除到 SQL 脚本中,也会出现同样的错误。我不知道为什么以及如何将指纹模板直接保存或插入到数据库中。
【问题讨论】:
-
您是否考虑过使用 ORM 而不是手动编写 sql 代码并让您的应用面临安全问题?
-
目标字段是什么数据类型?
-
我尝试将 varbinary(MAX) 用于 fpm_FingerPrintTemplate 但我将其更改为 varchar(MAX)。
-
对不起,我没有考虑 ORM 并且我对 ORM 概念不熟悉。它是对象关系映射吗?
标签: sql sql-server vb.net fingerprint biometrics