Поиск базы данных через текстовое поле и отображение результата в виде списка
Когда я помещаю текст в текстовое поле с помощью события textchanged, listview показывает данные повторно .
Что я уже пробовал:
я уже использовал этот код ниже здесь ,
string name = textboxsearch.Text; if (textboxsearch.Text != "") { con.Open(); string str = "select * from all_record where title like'" + name + "%'"; OleDbCommand cmd = new OleDbCommand(str, con); OleDbDataReader dr = cmd.ExecuteReader(); if (dr.Read()) { dr.Close(); OleDbDataReader dr1 = cmd.ExecuteReader(); while (dr1.Read()) { listView1.Visible = true; ListViewItem item = new ListViewItem(dr1["title"].ToString()); item.SubItems.Add(dr1["last_name"].ToString()); item.SubItems.Add(dr1["Age"].ToString()); listView1.Items.Add(item); } dr1.Close(); } else { listView1.Visible = false; listView1.Items.Clear(); } con.Close(); } else { listView1.Visible = false; listView1.Items.Clear(); }
Richard MacCutchan
Почему вы создаете два OleDbDataReader
предметы?
Richard MacCutchan
Скорее всего, потому, что событие TextChanged запускается для каждого введенного символа. Вам нужен какой-то способ убедиться, что вы вызываете этот код только тогда, когда пользователь перестал печатать.
Member 12704984
Ричард, ты прав , у тебя есть какое-нибудь решение ?
Richard MacCutchan
Вам нужно выбрать другое событие (возможно LostFocus
), или найти какой-то другой способ определить, когда у вас есть весь текст. Многое зависит от требований приложения.
Member 12704984
просматривал все события .
Richard MacCutchan
Это должно мне что-то сказать?
$*Developer - Vaibhav*$
Или вы можете добавить свой код TextBox_Leave событие
Member 12704984
Я уже пробовал там, но и результат тот же .
$*Developer - Vaibhav*$
Для вашего ref :
http://www.c-sharpcorner.com/uploadfile/9a3ae2/using-listview-control-windows-form-application3/
Member 12704984
это не вид из моего решения.