Как сравнивать след базы данных и другая вошедшая используя дигиталис является лично и c# с sql server?

Сюда я прихожу с этим случаем и дело в том, что я ищу, сравнивать след, введенный в компьютер в формуляре моего проекта, и который, будучи введена в компьютер, выполнял бы последовательность для того, чтобы он сравнил ее с теми, которые находятся в базе данных, и сделав это скажите мне, существует ли или нет он, в случае когда существовал, он изменит текст одного из моих label с идентификацией этого следа. Проблема состоит, в том, что несмотря на то, что вводит неправильный след в компьютер, система предупреждает меня, что, если он существует и сверху не меняет текст моего label посылая мне ошибку чтения в данных...

Я жду и смогите помогать мне здесь им оставил код, который я использую для сравнения и читателя следа, что использование - Цифровое, Является лично 4500.

private void Button1_Click(object sender, EventArgs e)
{
    SqlConnection con = new SqlConnection(conString);
    con.Open();
    try
    {
        SqlCommand cmd = new SqlCommand(@"SELECT COUNT(*) from Prueba where CONVERT(varchar(40), HUELLA) like '%@Huella%'", con);
        cmd.Parameters.AddWithValue("@Huella", SqlDbType.VarBinary);

        MemoryStream ms = new MemoryStream();

        pictureBox1.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
        cmd.Parameters["@Huella"].Value = ms.GetBuffer();
        SqlDataReader reader = cmd.ExecuteReader();

        if (reader.HasRows)
        {

            MessageBox.Show("Ya existe");
            Resultado.Text = reader["ID"].ToString();
            con.Close();

        }
        else
        {
            MessageBox.Show("No Existe");


        }
    }
    catch (Exception ex)
    {
        MessageBox.Show("Error en:" + ex.ToString());
        Controlalodor.Text = "";
    }
1
задан 04.11.2019, 17:51
1 ответ

Проблема состоит в том, что консультации, которую ты делаешь, один SELECT COUNT(*), чтобы видеть, существует ли какой-то след, но позже вместо того, чтобы подтверждать результат, ты подтверждаешь reader.HasRows.

SELECT COUNT(*) всегда будет возвращать тебе линию, с суммой реестров, которые выполняют ее condiciГіn, с которым reader.HasRows всегда будет возвращать тебе true. Что ты должен подтверждать, если результата консультации 0:

if (reader.HasRows)
{    
     reader.Read();
     if (reader.GetInt32(0) == 0)
     {
          MessageBox.Show("No Existe");
     }
     else
     {
          MessageBox.Show("Ya existe");
          Resultado.Text = reader["ID"].ToString();
          con.Close();
     }
 }
0
ответ дан 01.12.2019, 12:49
  • 1
    Уважаемый. Наладьте if, как это у тебя есть все же только, он посылает их мне " Не Existe" сравнивая ее со следами, которые он вводит в компьютер в базе данных – Kirito 04.11.2019, 19:04
  • 2
    @Kirito это уже отличается, возможно, что консультация sql, который ты используешь, не был правильный. Я не знаю о Цифровом человеке, чтобы мочь помогать тебе с этим, тебе recomendarí в первое пробовать делать консультацию с sql server, чтобы тестировать консультацию и видеть, когда он возвращает тебе уже зарегистрированные следы. – Pikoh♦ 05.11.2019, 09:25
  • 3
    Он выходит большое спасибо из-за твоей опоры я pondré чтобы исследовать больше – Kirito 05.11.2019, 17:01