【问题标题】:Displaying multiple values in datagridview by filter searching通过过滤器搜索在datagridview中显示多个值
【发布时间】: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 注入 - 你不应该通过连接来自用户的文本值来构建你的查询。而是使用这些示例中的参数化查询herehere
  • SQL 注入实战:xkcd.com/327

标签: mysql vb.net datagridview


【解决方案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()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 2017-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多