使用组合框查询数据库

时间:2013-12-20 22:32:25

标签: vb.net visual-studio

我在组合框中拥有一周中的所有日子,但是当选择一天时,我的数据网格中显示所有日期...如何使用组合框中的一个选定值来搜索该值。< / 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

2 个答案:

答案 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)