2

我已经将 dpfp 模板保存在一个varbinary(max)列中,现在我从数据库中检索它,转换为byte[],然后对其进行反序列化,然后放入 verify() 方法,但出现错误:

HRESULT 异常:0xFFFFFFF8

我如何获取数据如下所示:

SqlConnection cn = new SqlConnection(@"Data Source=Windows\me;Initial Catalog=Enroll;Persist Security Info=True;User ID=sa ;  Password=sa123");

cn.Open();
SqlDataAdapter adp = new SqlDataAdapter("Select varb from employee where employeeid='127'", cn);
DataTable dt = new DataTable();
adp.Fill(dt);
bytes= ConvertDataSetToByteArray(dt);

Template = new DPFP.Template();
Template.DeSerialize(bytes);

<b>Verificator.Verify(features, Template, ref result);</b>
UpdateStatus(result.FARAchieved);

if (result.Verified)
    MakeReport("The fingerprint was VERIFIED.");
else
    MakeReport("The fingerprint was NOT VERIFIED.");

Verify()不是验证来自数据库的数据。

我的错误在哪里?在转换?还是没有正确获取数据?

4

2 回答 2

2

数据表中应排除 ConvertDataSetToByteArray() 方法 System.Byte,将转换为byte[]

foreach (DataRow row in dt.Rows)
{
    bytes = (byte[])row["varb"];
}
于 2015-07-06T15:10:42.793 回答
0

我的问题是存储在 sql server 数据库中。

我使用的是 varbinary (MAX),指纹需要二进制 (1632)。我在数据库中修改了它并且它工作。

于 2017-03-16T13:59:18.310 回答