【问题标题】:Vb.Net Filter Datagridview using combo boxVb.Net使用组合框过滤Datagridview
【发布时间】:2019-04-13 18:18:55
【问题描述】:

我在我的其他 Windows 窗体中使用 Visual Studio 时遇到问题,它工作正常,但我现在在另一个窗体上使用它,它不再过滤我不知道为什么。

我正在尝试在数据网格视图中显示一个列表并使用两个组合框对其进行过滤。 这是该主题的示例数据库:

-------------------------------------------------------------------------------
|subject_id|subject_name|subject_code|subject_units|    sem        |year_level
------------------------------------------------------------------------------
|    1     |  MATH      | Math101    |     3       |First Semester | First Year
|    2     |  English   | ENG101     |     3       |First Semester | First Year
|    3     |  Prgrming  | IT101      |     3       |Second Semester| First Year
|    4     |  Networking| IT203      |     3       |Second Semester| First Year

这是我的代码。

myconn = New MySqlConnection
    myconn.ConnectionString = connstring
    myconn.Open()
    tables = ds.Tables
 ds = New DataSet
    tables = ds.Tables
    Dim Query As String
    Query = "selct * from subject_bsit"

'*** CHECKING IF ALL REQUIRED FIELDS ARE PRESENT *****
    If ComboBox1.Text = "" Or ComboBox2.Text = "" Then
        MessageBox.Show("Complete all fields.")
        Exit Sub
    End If



 If (ComboBox1.Text = "All") And (ComboBox2.Text = "First Semester") Then
            da = New MySqlDataAdapter("Select subject_id as 'ID',subject_name as 'SUBJECT',subject_code as 'SUBJECT CODE',subject_units as 'UNITS',sem as 'Semester',year_level as 'YEAR LEVEL' from subject_bsit  where sem = '" + ComboBox2.Text + "' or year_level = '" + ComboBox1.Text + "' ", myconn)
            da.Fill(ds, "subject_bsit")

            Dim view As New DataView(tables(0))
            source1.DataSource = view
            DataGridView1.DataSource = view
            DataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells)
        End If

正如您在示例图片中看到的那样,结果必须是 全年级别 第一年至第四年,但只有第一学期的所有科目 但在图片中它也显示了第二学期。

这让我很困惑,因为我有其他形式的完全相同的代码,但它工作正常。请帮忙,非常感谢。

【问题讨论】:

    标签: mysql database vb.net datagridview phpmyadmin


    【解决方案1】:

    你只需要像这样在你的sql字符串中用“and”替换逻辑运算符“or”:

    从 subject_bsit where sem = '" + ComboBox2.Text + "' and year_level = '" + ComboBox1.Text + "'", myconn)

    希望对你有帮助^_^

    【讨论】:

      【解决方案2】:

      重新启动 Visual Studio 即可解决问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-10-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-31
        • 1970-01-01
        相关资源
        最近更新 更多