下午好!我只是想问一下我的代码是否有问题?特别是在流/数据库保存逻辑中。即使我使用不同的指纹(即42-4D-2E-06-07-00-00-00-00-00),这也会将相同的数据保存到数据库中。据我所知,每个手指保存的数据应该不同。但即使我尝试了所有手指,相同的数据也会输入到数据库中。任何帮助将非常感激。
此外,抱歉,如果我的问题看起来很混乱,我在这里是一个新手,我仍然在努力学习正确的方法。 :)
public void OnComplete(object Capture, string ReaderSerialNumber, DPFP.Sample Sample)
{
Bitmap bitmap;
bitmap = ConvertSampleToBitmap(Sample);
Bitmap img = new Bitmap(bitmap, Picture.Size);
this.Invoke(new Function(delegate ()
{
Picture.Image = img; // fit the image into the picture box
//string ping;
using (MemoryStream m = new MemoryStream())
{
img.Save(m, ImageFormat.Bmp);
m.Position = 0;
DPFP.Template Template = new DPFP.Template(m);
MemoryStream fingerprintData = new MemoryStream();
Template.Serialize(fingerprintData);
fingerprintData.Position = 0;
BinaryReader br = new BinaryReader(fingerprintData);
Byte[] bytes = br.ReadBytes((Int32)fingerprintData.Length);
string ping = BitConverter.ToString(bytes);
MySqlConnectionStringBuilder connBuilder = new MySqlConnectionStringBuilder();
connBuilder.Add("Server", "localhost");
connBuilder.Add("Port", "3306");
connBuilder.Add("Database", "db_fingerprint");
connBuilder.Add("Username", "root");
connBuilder.Add("Password", "");
MySqlConnection conn = new MySqlConnection(connBuilder.ConnectionString);
MySqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "INSERT INTO tbl_finger VALUES(@finger_id, @finger_tag, @stud_id)";
cmd.Parameters.AddWithValue("finger_id", "");
cmd.Parameters.AddWithValue("stud_id", txtstud_num.Text);
cmd.Parameters.AddWithValue("finger_tag", ping);
conn.Open();
int a = cmd.ExecuteNonQuery();
if (a > 0)
{
MessageBox.Show("Fingerprint Registered.");
cmd.CommandText = "UPDATE tbl_students SET is_registered = 1 WHERE stud_id = '" + txtstud_num.Text + "';";
cmd.ExecuteNonQuery();
}
else
{
MessageBox.Show("No Fingerprint Registered.");
}
conn.Close();
}
}));
}
这些代码行:
bitmap = ConvertSampleToBitmap(Sample);
Bitmap img = new Bitmap(bitmap, Picture.Size);
您将示例转换为位图并将其添加到db-Entity。相反,你应该使用捕获。由于Capture是对象类型我不知道,如果你必须转换它,但所需的行可能如下所示:
Bitmap img = (Bitmap) Capture;
编辑:当我做进一步研究时,我意识到,我的答案是错误的,但也许你可以使用这个Tutorial找出你的错误可能是什么。
也许你需要等待你的捕获。