У меня глупая проблема, которую нужно решить. Позвольте мне сначала написать, что я делаю на самом деле. У меня есть сканер штрих-кода, который считывает данные штрих-кода и, в зависимости от этого, показывает соответствующие данные из базы данных. Все работает нормально, кроме как сейчас. Я должен очищать данные TextBox всякий раз, когда срабатывает триггер, и я пытался сделать следующее:
textBox1.Text = "";
Опять я делаю одну вещь здесь. Я использую изменение события TextBox
, чтобы отобразить данные штрих-кода без ввода или каких-либо манипуляций с таймером, свойство period 250. NB : я использую Timer
, чтобы получить полные данные из штрих-кода, или он получает только первое значение этих данных. Пример: данные штрих-кода - 1001, затем без Timer
, он получает только 1.
Программа выводит сообщение, если в базе данных нет соответствующих данных. Итак, вот полный фрагмент кода:
private void TextBox1_TextChanged(object sender, EventArgs e)
{
timer1.Stop();
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
timer1.Stop();
if (GetStudentId(textBox1.Text))
{
frmStudentDetails aFrm = new frmStudentDetails();
aFrm.Show();
studentId = textBox1.Text;
textBox1.Text = "";
}
else
{
MessageBox.Show("Oops! Id not found."); //This statement executes every time
textBox1.Text = "";
}
}
Проблема заключается в том, что всякий раз, когда очищается TextBox
, он выдает сообщение об ошибке, даже если в базе данных есть совпадающие данные, и, если данные не найдены, то отображается ошибкасообщение дважды. Что-то, что я делаю здесь не так?
![Sample Image](https://i.stack.imgur.com/6ApE1.png)