从弹出窗口动态过滤Datagridview

时间:2018-07-11 10:30:57

标签: c# filter datagridview oledb dataview

在我的项目中,我想过滤一个datagridview。因此,通过右键单击所需的列,我会调用带有文本框的表单,该文本框会在我键入时过滤datadridview

enter image description here

但是当我开始在文本框中输入内容时,似乎没有任何作用

我的项目是MDI容器,主要形式是frm_Main

形式为frm_AC:

数据库连接代码:

      OleDbConnection connAC = new OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0;Data Source=" + @Application.StartupPath + "\\BDD_AC.mdb;Mode=Share Deny None");
      OleDbDataAdapter adapter;
      public static DataTable dtACCAS;

datagridview代码:

      connAC.Open();
      dtACCAS = new DataTable();
      adapter = new OleDbDataAdapter("SELECT * FROM [tbl_ACCAS]", connAC);
      adapter.Fill(dtACCAS);

      new OleDbCommandBuilder(adapter);
      dataGridView_TCAS.DataSource = dtACCAS;
      connAC.Close();

打开包含文本框过滤器的表单:(frm_DGVfiltre)

   void MFiltrer_Click(object sender, EventArgs e)
    {
        var frm_dgvfiltre = new frm_DGVFiltre(Cursor.Position);
        frm_dgvfiltre.ShowDialog(this);
    }   

格式:frm_DGVfiltre:

private void textBox_FiltreSearch_TextChanged(object sender, EventArgs e)
    {
       DataView DV = new DataView(frm_AC.dtACCAS);
       DV.RowFilter = string.Format(frm_AC.NomColonne + " LIKE '%{0}%'", textBox_FiltreSearch.Text);
       ((frm_AC)Owner).dataGridView_TCAS.DataSource = DV;
    }   

当我在文本框中键入内容时,发生错误: 不可能的类型的效果器,类型为“ Projet.frm_Main”,类型为“ Projet.frm_AC”。

英语翻译:

  

不能将类型为“ Projet.frm_Main”的对象转换为类型为“ Projet.frm_AC”。

代码有什么问题?

nb:datagridview设置为public。

0 个答案:

没有答案