如何加载一个Excel文件到一个文本框过滤datagridview

我在非常开始与C#。 我正在创build一个为客户提供优惠的计划。 我得到了第一种forms的报价和一个excel文件加载到datagridview子窗体。 当我双击行时,它被复制到第一行的datagridview。 它工作正常。 但是我想添加一个带有TextChanged事件的TextBox,所以当用户放置一些文本的时候,一个datagridview(第二种forms,那个带有excel数据的)应该只显示包含这个文本的行。 如果无法一次search所有的列,那就没问题了。 但是我不能使它工作。 我发现了一些溶剂,我复制了,但我不工作。 所以这是代码:

private void button1_Click(object sender, EventArgs e) { try { System.Data.OleDb.OleDbConnection PolaczenieBazyDanych = new System.Data.OleDb.OleDbConnection("provider=Microsoft.ACE.OLEDB.12.0;Data Source='C:\\Users\\user\\Desktop\\My Dropbox\\Cenniki\\Cennik.xlsx';Extended Properties=Excel 8.0;"); System.Data.DataSet DtSet = new System.Data.DataSet(); System.Data.OleDb.OleDbDataAdapter Adapter = new System.Data.OleDb.OleDbDataAdapter("select * from [Tabelle1$]", PolaczenieBazyDanych); //Adapter.TableMappings.Add("Tabela", "TabelaTestowa"); Adapter.Fill(DtSet); dataGridView1.DataSource = DtSet.Tables[0]; PolaczenieBazyDanych.Close(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } } private void textBox1_TextChanged(object sender, EventArgs e) { DataView dv = ((DataTable)dataGridView1.DataSource).DefaultView; dv.RowFilter = "FromColumn like '%" + textBox1.Text + "%'"; dataGridView1.DataSource = dv; } 

这确实工作:

  BindingSource bs = new BindingSource(); bs.DataSource = dataGridView1.DataSource; bs.Filter = sColumnaDoPrzeszukania + " like '%" + textBox1.Text + "%'"; dataGridView1.DataSource = bs;