0
У меня есть текстовое поле поиска. Когда пользователь вводит текст, я хочу автоматически заполнить dataGridView. Но txtSearch.Text всегда показывает "". Как я могу это решить?textBox автоматически поиск
Если в txtSearch нет текста, dataGridView должен отображать все данные.
Это код:
private void txtSearch_TextChanged(object sender, EventArgs e)
{
//grid.Rows.Clear();
OleDbDataReader dr = default(OleDbDataReader);
using (OleDbConnection cn = new OleDbConnection(
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source="
+ Application.StartupPath + "\\MyAcsessDb.accdb"))
{
cn.Open();
OleDbCommand cmd = new OleDbCommand(
"Select * FROM Student WHERE [Name] Like '%@Name%' ", cn);
cmd.Parameters.Add("@Name", OleDbType.Char).Value = txtSearch.Text;
dr = cmd.ExecuteReader();
if (dr.HasRows == true)
{
while (dr.Read())
{
grid.Rows.Add(dr[0].ToString(),
dr[1].ToString(),
dr[2].ToString(),
dr[3].ToString());
}
}
else
{
MessageBox.Show("No Data!");
}
}
}
Очень странно. Можете ли вы попробовать ясный env? Все в порядке с изменением текста и стрельбой? – Elastep
сейчас, текст изменен. но он всегда отбрасывает блок else. Я думаю, это неправильно. OleDbCommand cmd = new OleDbCommand («Выбрать * FROM Student WHERE [Имя] Как«% @ Name% », cn); – ozkank