我在组合框中拥有一周中的所有日子,但是当选择一天时,我的数据网格中显示所有日期...如何使用组合框中的一个选定值来搜索该值。< / p>
Private Sub btnViewTimeTable_Click(sender As Object, e As EventArgs) Handles btnViewTimeTable.Click
If (cbDay.Text = "Monday" Or cbDay.Text = "Tuesday" Or cbDay.Text = "Wednesday" Or cbDay.Text = "Thursday" Or cbDay.Text = "Friday" Or cbDay.Text = "Saturday" Or cbDay.Text = "Sunday") Then
Dim SqlQuery As String = "SELECT Time, Activity, Equipment FROM TimeTable WHERE Day = cbDay"
Dim da As OleDbDataAdapter = New OleDbDataAdapter(SqlQuery, conn)
Dim ds As DataSet = New DataSet
da.Fill(ds, "Table")
Dim dt As DataTable = ds.Tables("Table")
With DGTimeTable
.AutoGenerateColumns = True
.DataSource = ds
.DataMember = "Table"
End With
With DGTimeTable
.Columns(0).Width = 108
.Columns(1).Width = 154
.Columns(2).Width = 278
Me.DGTimeTable.DefaultCellStyle.WrapMode = DataGridViewTriState.True
Me.DGTimeTable.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells
End With
Else
MsgBox("Please Select a Day!")
End If
End Sub
答案 0 :(得分:1)
您只需使用以下代码
在datagridview中制作过滤器即可Dim column As String = 'Your weekday column Name in Datagridview
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
Dim rows = ds.Tables(0).Select("Convert(" & column & ", 'System.String') LIKE '*" + ComboBox1.SelectedItem + "*'")
Try
DGTimeTable.DataSource = rows.CopyToDataTable
Catch ex As Exception
End Try
End Sub
答案 1 :(得分:0)
您将cbDay作为字符串传递,请尝试更改此行
Dim SqlQuery As String = "SELECT Time, Activity, Equipment FROM TimeTable WHERE Day = cbDay"
这样的事情
Dim SqlQuery As String = String.Format("SELECT Time, Activity, Equipment FROM TimeTable WHERE Day = {0}", cbDay.Text)