通过过滤器搜索在datagridview中显示多个值

Posted

技术标签:

【中文标题】通过过滤器搜索在datagridview中显示多个值【英文标题】:Displaying multiple values in datagridview by filter searching 【发布时间】:2016-03-09 20:41:06 【问题描述】:

我正在制作一个通过搜索课程来搜索学生信息的vb程序。例如Ajax的课程是“BSCS”,DP的课程是“BSIT”,那么我要选择BSCS,所以Ajax的必须只出现不是DP。结果出现在 DataGridView 中

    myConnection.Open()
    Dim str As String
    str = "SELECT * FROM students WHERE (Course = '" & TextBox1.Text & "')"
    Dim cmd As OleDbCommand = New OleDbCommand(str, myConnection)
    dr = cmd.ExecuteReader
    While dr.Read()
        FirstNameTextBox = dr("FirstName")
        MiddleNameTextBox = dr("MiddleName")
        LastNameTextBox = dr("LastName")
        AddressTextBox = dr("Address")
        CellphoneNumberTextBox = dr("CellphoneNumber")
        CourseTextBox = dr("Course")
    End While
    myConnection.Close()

【问题讨论】:

您需要填写一个DataTable,然后将其设置为您的DataGridView 作为DataSource。截至目前,这些结果不会发送到DataGridView 当心 sql 注入 - 你不应该通过连接来自用户的文本值来构建你的查询。而是使用这些示例中的参数化查询here 和here。 SQL 注入实战:xkcd.com/327 【参考方案1】:

根据您的代码,您应该将新的 DataGridView 添加到表单中,并添加带有您选择的标题名称的列并将代码替换为我的代码

        myConnection.Open()
        Dim str As String
        str = "SELECT * FROM students WHERE (Course = '" & TextBox1.Text & "')"
        Dim cmd As OleDbCommand = New OleDbCommand(str, myConnection)
        dr = cmd.ExecuteReader
        While dr.Read()
           DataGridView1.Rows.Add(dr("FirstName"),  dr("MiddleName"), dr("LastName"), dr("Address"), dr("CellphoneNumber"), dr("Course"))
        End While
        myConnection.Close()

【讨论】:

以上是关于通过过滤器搜索在datagridview中显示多个值的主要内容,如果未能解决你的问题,请参考以下文章

应用 TreeView 过滤器后 DataGridView 中出现多余的行

通过 datagridview 搜索值

通过 TextBox(C#、WinForms)过滤空 DataGridView

如何跨应用程序在多个 Datagridviews 之间共享 DataTable 并节省宝贵的内存

从 Datagridview 到其他 datagridview 添加在旧行下

在 DataGridView 中过滤外键