如何在加载excel文件后通过文本框过滤数据视图

本文关键字:文本 过滤 视图 数据 加载 excel 文件 | 更新日期: 2023-09-27 18:04:34

我刚开始学习c#。我正在创建一个为客户提供报价的程序。我得到了第一个形式的报价和子表单与excel文件加载到datagridview。当我双击行时,它被复制到第一行的datagridview。它工作得很好。但我想添加一个TextBox与TextChanged事件,所以当用户把一些文本有一个datagridview(在第二种形式,一个excel数据)应该只显示包含此文本的行。如果不能一次搜索所有的列,也没关系。但我做不到。我找到了一些解决方案,我复制了它,但它不起作用。下面是代码:

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;

}

如何在加载excel文件后通过文本框过滤数据视图

这个成功了:

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