Мой datagridview заполнен основными полями из таблицы базы данных.
DataTable dt2 = db.select("select fname,lname from tbl_actor");
dataGridView1.DataSource = dt2;
При нажатии на datagridview все поля записи будут отображаться в отдельных текстовых полях.
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
DataTable dt3=new DataTable();
dt3.Clear();
dt3 = db.select("select * from tbl_actor where fname='" +dataGridView1.CurrentRow.Cells[0].Value.ToString() + "'and lname='" + dataGridView1.CurrentRow.Cells[1].Value.ToString() + "'");
tbxtemp1.Text = dt3.Rows[0][1].ToString();
tbxtemp2.Text = dt3.Rows[0][2].ToString();
tbxtemp3.Text = dt3.Rows[0][3].ToString();
}
Все хорошо. Но у нас есть еще одно текстовое поле, которое будет фильтровать содержимое datagridview.
private void textBox1_TextChanged(object sender, EventArgs e)
{
DataTable dt2 = db.select("select * from tbl_actor where fname like '%" +textBox1.Text+"%'");
dataGridView1.DataSource = dt2;
}
Проблема здесь. после отображения отфильтрованных данных событие dataGridView1_CellContentClick останавливается с ошибкой.
"Там нет строки в позиции 0"
Я знаю, что проблема в datatable, но не знаю, как ее решить.
Что касается рассматриваемого вопроса, то никто не сможет ответить на него без удачного предположения. Что делать, если запрос ничего не возвращает? Здесь вам нужно предоставить гораздо больше деталей.





Прежде чем делать что-либо еще, вам нужно прочитать, понять и начать использовать параметризованные запросы, прежде чем таблицы bobby уничтожат вашу базу данных. bobby-tables.com