【问题标题】:Search DataGridView without using Datasource在不使用数据源的情况下搜索 DataGridView
【发布时间】:2017-08-31 18:33:44
【问题描述】:

我正在努力解决一个小问题(在 Datagridview 中搜索)

我找到了执行搜索功能的代码,但问题是每当该功能启动时,数据库都会重新加载。 (当我遵循绑定源 rowfilter 或 string.format 函数时),这会使搜索功能变慢,我需要做的是在我将数据库加载到 DGV 后,我只需要搜索 datagridview 中的数据,我不想使用绑定源或设置新的数据视图。

这是我当前的代码,工作正常,只是每当更改文本时,数据库都会再次加载。

Me.ACCESSIONTableAdapter.Fill(Me.HomeDataSet.ACCESSION)
    Dim dv As New DataView(HomeDataSet.ACCESSION)
    dv.RowFilter = String.Format("AC_NO Like '%{0}%' and ac_receiveddt >= '{1}'  and ac_receiveddt <= '{2}'", TextBox1.Text, DateTimePicker1.Text, DateTimePicker2.Text)
    ACCESSIONDataGridView.DataSource = dv

那么,是否有另一种方法可以在不使用数据源的情况下搜索 DGV 中当前填充的数据?

【问题讨论】:

  • the database is reloaded 是什么意思?除非您在某处有代码(事件代码?),否则摆弄控件的数据源不会重新查询数据库。控件将重绘,但那不是一回事。此外,您可能应该在过滤器中使用DateTimePicker.Value.Date(请不要说日期存储为文本)。最后,请阅读How to Ask并采取tour

标签: vb.net datagridview


【解决方案1】:

数据只会重新加载,因为您正在重新加载它。如果您不想再次检索数据,请不要再次致电Fill。只调用一次Fill,首先检索数据。将您的 DataTable 绑定到您的 BindingSource 并将您的 BindingSource 绑定到您的网格。当您要过滤数据时,只需设置BindingSourceFilter 属性。您在上面的代码中分配给DataViewRowFilter 的文本就是您分配给Filter 属性的文本。

【讨论】:

  • 这么蠢的东西我忘了拿出来。删除了那条线,它工作得很好!非常感谢!!!!
【解决方案2】:

你也可以试试这个

Sub display()
    'select query is used to display the list of records from the database to be displayed in the datagridview.
    Dim temp As Double = 0
    Dim lt As String = "select id as ID, vlname as Last, vfname as First, vmname as Middle, vgnd as Gender, vdob as Birthday, iage as Age, vcourse as Course from tbreg where vlname Like '" + tbsearch.Text + "%' or vfname Like '" + tbsearch.Text + "%' order by vlname asc" 'add desc for descending order/ asc for ascending (order by vlanme desc)
    Dim da As New MySqlDataAdapter(lt, con)
    con.Open()

    Dim ds As New DataSet
    da.Fill(ds, "tbreg")
    da.Dispose()
    dgv.DataSource = ds.Tables(0)
    con.Close()
End Sub

只要他单击按钮或文本框中的文本发生变化,就调用该方法

【讨论】:

  • 使用键入的DataSet,您必须向相应的表适配器添加新查询。
猜你喜欢
  • 2011-08-16
  • 1970-01-01
  • 2014-02-07
  • 2014-05-03
  • 1970-01-01
  • 2020-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多