【问题标题】:How can I filter the result of sql select query on datagrid view如何在datagridview上过滤sql select查询的结果
【发布时间】:2013-01-09 00:34:07
【问题描述】:

我的表单上有一个 Sql 查询,在我的 tableA 中显示所有到期日期为 2013 年的记录,填充数据网格视图。我还有一个按钮和文本框。

我想做的是在datagrid视图上过滤我的sql查询结果,是否可以有另一个这样的sql:

"SELECT caseno, duedate,remarks from (the data on my datagrid view)"

这是我的数据网格示例:

    caseno      duedate       remarks
    1001        1/12/13       passed
    1002        1/22/13       passed
    1003        1/15/13       failed
    1004        1/20/13       none
    1005        1/06/13       failed

当我单击按钮时,我想在我的数据网格上显示所有具有我在我的文本框中输入的备注的记录。任何人都可以帮助我吗?天呐!尽量让它简单:)

【问题讨论】:

  • 您能否分享您如何将数据绑定到DataGridView 的代码?
  • 我没有编码,我只是在datagrid属性中选择绑定源
  • 你正在使用dataSet, dataTable, tableAdapter?

标签: sql vb.net datagridview filter


【解决方案1】:

通过使用 dataview 行过滤器,您可以过滤数据

【讨论】:

    【解决方案2】:

    BindingSource.Filter怎么样

     BindingSource.Filter = "caseno Like '" textBox.Text + "%'"
    

    【讨论】:

      【解决方案3】:

      您用于过滤备注的选择语句:

      SELECT caseno, duedate, remarks FROM yourTable name where remarks = '"& txt1.text &"'
      

      您还可以制作一个包含备注列表的组合框,并将 txt1.text 替换为 combobox1.text

      将其放在 datagridview 上:(在您的按钮事件中)

          'declare your dataset and adapter
          Dim adapter As MySqlDataAdapter
          Dim ds As New DataSet
      
      Try
      
              connect()
              adapter = New MySqlDataAdapter("SELECT caseno, duedate, remarks FROM yourTable name where remarks = '"& txt1.text &"'", con)
              adapter.Fill(ds)
              yourdatagridview.DataSource = ds.Tables(0)
      
       Catch ex As Exception
              MsgBox(ex.Message)
          End Try
          con.Close()
      

      【讨论】:

        【解决方案4】:

        解决方案 1:

        1. 设置datagridview的数据源选择sql查询
        2. 仅在文本更改事件发生时绑定数据
        3. 在按钮单击事件上对文本框文本进行验证

        参考:How to filter records in datagrid view and show the selected record in the datagrid

        解决方案 2:

        codeproject for Filter DataGridview with data entered in textbox查看此帖子

        需要注意的重要一点是,您可以将DataView.RowFilter 与您在textbox 中输入的参数一起使用。然后将该DataView绑定到GridViewRowSource。在上面的示例中,它使用的是:

        dataview.RowFilter = "Year(Duedate) = " + textBox1.Text + ";
        dataGridView1.DataSource = dataview;
        

        您还可以在 SO 中找到许多其他文章。

        【讨论】:

        • vb.net中没有dataview.rowfilter
        • 那么你可以按照第一个解决方案。
        • 我已经有一个选择查询,它在 form_load 事件中显示今年到期的所有记录。我想要的是根据我将在文本框中键入的备注过滤 datagridview 中的记录
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-08
        • 1970-01-01
        • 2012-10-15
        • 2014-09-23
        • 1970-01-01
        相关资源
        最近更新 更多