I am using digital persona fingerprint reader which is U.are.U 5100, c# programming language and oracle database. The problem i faces was it was stated FMD created successfully during enrollment, but this only will be saved temporarily. Can i know what solution will be suggested to the code in order to allow it to save to the database the fingerprint.
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using DPUruNet;
namespace UareUSampleCSharp
{
public partial class Enrollment : Form
{
/// <summary>
/// Holds the main form with many functions common to all of SDK
/// actions.
/// </summary>
public Form_Main _sender;
List<Fmd> preenrollmentFmds;
int count;
public Enrollment()
{
InitializeComponent();
}
/// <summary>
/// Initialize the form.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Enrollment_Load(object sender, System.EventArgs e)
{
txtEnroll.Text = string.Empty;
preenrollmentFmds = new List<Fmd>();
count = 0;
SendMessage(Action.SendMessage, "Place a finger on the reader.");
if (!_sender.OpenReader())
{
this.Close();
}
if (!_sender.StartCaptureAsync(this.OnCaptured))
{
this.Close();
}
}
/// <summary>
/// Handler for when a fingerprint is captured.
/// </summary>
/// <param name="captureResult">contains info and data on the fingerprint
capture</param>
private void OnCaptured(CaptureResult captureResult)
{
try
{
// Check capture quality and throw an error if bad.
if (!_sender.CheckCaptureResult(captureResult)) return;
count++;
DataResult<Fmd> resultConversion =
FeatureExtraction.CreateFmdFromFid(captureResult.Data,
Constants.Formats.Fmd.ANSI);
SendMessage(Action.SendMessage, "A finger was captured.
\r\nCount: " + (count));
if (resultConversion.ResultCode !=
Constants.ResultCode.DP_SUCCESS)
{
_sender.Reset = true;
throw new Exception(resultConversion.ResultCode.ToString());
}
preenrollmentFmds.Add(resultConversion.Data);
if (count >= 4)
{
DataResult<Fmd> resultEnrollment =
DPUruNet.Enrollment.CreateEnrollmentFmd(Constants.Formats.
Fmd.ANSI,
preenrollmentFmds);
if (resultEnrollment.ResultCode ==
Constants.ResultCode.DP_SUCCESS)
{
SendMessage(Action.SendMessage, "An enrollment FMD was
successfully created.");
SendMessage(Action.SendMessage, "Place a finger on the
reader.");
preenrollmentFmds.Clear();
count = 0;
return;
}
else if (resultEnrollment.ResultCode ==
Constants.ResultCode.DP_ENROLLMENT_INVALID_SET)
{
SendMessage(Action.SendMessage, "Enrollment was
unsuccessful. Please try again.");
SendMessage(Action.SendMessage, "Place a finger on the
reader.");
preenrollmentFmds.Clear();
count = 0;
return;
}
}
SendMessage(Action.SendMessage, "Now place the same finger on the
reader.");
}
catch (Exception ex)
{
// Send error message, then close form
SendMessage(Action.SendMessage, "Error: " + ex.Message);
}
}
/// <summary>
/// Close window.
/// </summary>
private void btnBack_Click(System.Object sender, System.EventArgs e)
{
this.Close();
}
/// <summary>
/// Close window.
/// </summary>
private void Enrollment_Closed(object sender, System.EventArgs e)
{
_sender.CancelCaptureAndCloseReader(this.OnCaptured);
}
#region SendMessage
private enum Action
{
SendMessage
}
private delegate void SendMessageCallback(Action action, string
payload);
private void SendMessage(Action action, string payload)
{
try
{
if (this.txtEnroll.InvokeRequired)
{
SendMessageCallback d = new
SendMessageCallback(SendMessage);
this.Invoke(d, new object[] { action, payload });
}
else
{
switch (action)
{
case Action.SendMessage:
txtEnroll.Text += payload + "\r\n\r\n";
txtEnroll.SelectionStart = txtEnroll.TextLength;
txtEnroll.ScrollToCaret();
break;
}
}
}
catch (Exception)
{
}
}
#endregion
}
}