Theepan Konesh Ответов: 1

Я получаю ошибку при поиске datagridview


Я хочу найти запись из представления таблицы данных с помощью события изменения текста, но когда я попробовал этот код
string rowFilter = string.Format("SELECT * FROM [VisitorInfo] where First Name LIKE '%{0}%' AND Last Name LIKE '%{1}%'", F_Name.Text, L_Name.Text);
            (metroGrid1.DataSource as DataTable).DefaultView.RowFilter = rowFilter;


Я получаю
Object reference not set to an instance of an object
ошибка может ли кто-нибудь мне помочь

Что я уже пробовал:

пока что мои коды
private void metroTile8_Click(object sender, EventArgs e)
       {
           try
           {
               Connection.Open();
               String str = "select * from [VisitorInfo]";
               OleDbCommand com = new OleDbCommand(str, Connection);
               DataSet ds = new DataSet();
               OleDbDataAdapter oledbda = new OleDbDataAdapter(com);
               oledbda.Fill(ds, "[VisitorInfo]");
               Connection.Close();
               metroGrid1.DataSource = ds;
               metroGrid1.DataMember = "[VisitorInfo]";
               metroGrid1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
               metroGrid1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
               metroGrid1.DefaultCellStyle.Font = new Font("Tahoma", 15);
               metroGrid1.ColumnHeadersDefaultCellStyle.Font = new Font("Tahoma", 12, FontStyle.Bold);
               metroGrid1.Columns[0].Visible = false;
               metroGrid1.Columns[0].FillWeight = 25;
               metroGrid1.Columns[1].FillWeight = 50;
               metroGrid1.Columns[2].FillWeight = 50;



               Connection.Close();
           }
           catch (Exception ex)
           {
               MessageBox.Show(ex.Message);
           }
       }

       private void search_txt_TextChanged(object sender, EventArgs e)
       {
           string rowFilter = string.Format("SELECT * FROM [VisitorInfo] where First Name LIKE '%{0}%' AND Last Name LIKE '%{1}%'", F_Name.Text, L_Name.Text);
           (metroGrid1.DataSource as DataTable).DefaultView.RowFilter = rowFilter;
       }

1 Ответов

Рейтинг:
2

Patrice T

Запустите приложение с помощью отладчика, установите точку останова в строке, где возникает ошибка, когда выполнение останавливается, проверьте переменные, используемые в этой строке, одна из них не является ожидаемым объектом. Вам нужно найти причину.

Используйте отладчик, чтобы увидеть, что делает ваш код. Он позволяет выполнять строки 1 на 1 и проверять переменные по мере их выполнения.

Отладчик-Википедия, свободная энциклопедия[^]
Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]
Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.
В отладчике нет никакой магии, он не находит ошибок, он просто помогает вам. Когда код не делает того, что ожидается, вы близки к ошибке.