VB.net动态筛选datagrid
我是编程新手,尤其是VB,我正在尝试制作一个CSV阅读器,在这里我可以用一个搜索框过滤所有内容。下面是我用来将CSV文件加载到datagrid中的代码:VB.net动态筛选datagrid,vb.net,search,gridview,csv,filter,Vb.net,Search,Gridview,Csv,Filter,我是编程新手,尤其是VB,我正在尝试制作一个CSV阅读器,在这里我可以用一个搜索框过滤所有内容。下面是我用来将CSV文件加载到datagrid中的代码: Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load SetupDataGridView() 'Dim csvpath As String = Applicat
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
SetupDataGridView()
'Dim csvpath As String = Application.StartupPath & "\csvtest.csv"
Dim csvpath As String = "c:\songs.csv"
Using MyReader As New Microsoft.VisualBasic.FileIO.TextFieldParser(csvpath)
MyReader.TextFieldType = FileIO.FieldType.Delimited
MyReader.SetDelimiters(",")
Dim currentRow As String()
While Not MyReader.EndOfData
Application.DoEvents()
Try
currentRow = MyReader.ReadFields()
With songsDataGridView
.ColumnCount = 2
Dim row As String() = New String() {currentRow(0), currentRow(1)}
.Rows.Add(row)
End With
Catch ex As Microsoft.VisualBasic.FileIO.MalformedLineException
MsgBox("Line " & ex.Message & _
"is not valid and will be skipped.")
End Try
End While
End Using
End Sub
这会将艺术家和标题加载到包含两列的gridview中,我可以单击列标题并进行排序。我现在想做的是使用我的搜索框(TextBox1),当我键入任何内容时,让不匹配的结果消失,只留下我的搜索词。我想匹配艺术家或头衔。然后,当您清除搜索框时,我想返回显示CSV文件(原始gridview)的所有内容
我到处都找遍了,找不到我想要的东西。很多数据库和SQL的东西,但不是我想要的datagrid
有人有什么可以帮忙的吗?还有,处理这件事的最好方法是我现在的处理方式吗?将所有条目加载到gridview需要几秒钟的时间,因此我不知道是否最好先将它们加载到数组中并对其进行过滤,或者它应该如何工作。有12000首歌,所以需要一点时间。这样的阵列会不会太大
所以我想我有一个由两部分组成的问题:
非常感谢你的帮助 您可以尝试将数据存储在
DataTable
对象中,而不是将其直接嵌入DataGridView
中。然后将DataGridView
的数据源链接到DataTable.DefaultView
。然后,您可以使用所演示的DefaultView.RowFilter
筛选表。此外,您还可以使用TextBox.Changed
事件根据输入的值应用过滤器。谢谢,我在将CSV加载到数据表时遇到问题。代码似乎不同于将其加载到gridview中。另外,我在过滤gridview时遇到问题。你有没有可能发布一个你上面提到的例子?我不知道把你提到的代码放在哪里。因为我没有空间在这里粘贴我的代码,这里有一个链接,指向它的屏幕截图,其中有问题的部分[链接]