通过过滤器搜索在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 中出现多余的行
通过 TextBox(C#、WinForms)过滤空 DataGridView
如何跨应用程序在多个 Datagridviews 之间共享 DataTable 并节省宝贵的内存