我的代码有什么东西,因为它会在数据库中保存相同的数据,甚至扫描不同的指纹吗?

问题描述 投票:-1回答:1

下午好!我只是想问一下我的代码是否有问题?特别是在流/数据库保存逻辑中。即使我使用不同的指纹(即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();
                }
        }));
    }
c# mysql fingerprint
1个回答
0
投票

这些代码行:

bitmap = ConvertSampleToBitmap(Sample);
Bitmap img = new Bitmap(bitmap, Picture.Size);

您将示例转换为位图并将其添加到db-Entity。相反,你应该使用捕获。由于Capture是对象类型我不知道,如果你必须转换它,但所需的行可能如下所示:

Bitmap img = (Bitmap) Capture;

编辑:当我做进一步研究时,我意识到,我的答案是错误的,但也许你可以使用这个Tutorial找出你的错误可能是什么。

也许你需要等待你的捕获。

© www.soinside.com 2019 - 2024. All rights reserved.