Mysql 使用组合框的Vb.Net过滤器Datagridview

Mysql 使用组合框的Vb.Net过滤器Datagridview,mysql,database,vb.net,datagridview,phpmyadmin,Mysql,Database,Vb.net,Datagridview,Phpmyadmin,我在其他windows窗体中使用visualstudio时遇到了问题,虽然代码相同,但我现在在另一个窗体上使用visualstudio,它不再过滤,我不知道为什么 我试图在datagrid视图中显示一个列表,并使用两个组合框对其进行过滤。 以下是该主题的示例数据库: ------------------------------------------------------------------------------- |subject_id|subject_name|subject_cod

我在其他windows窗体中使用visualstudio时遇到了问题,虽然代码相同,但我现在在另一个窗体上使用visualstudio,它不再过滤,我不知道为什么

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

-------------------------------------------------------------------------------
|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

正如您在示例图像中看到的,结果必须是 一年级至四年级的全年水平,但仅限于第一学期的所有科目 但图中也显示了第二学期


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

重新启动Visual Studio可解决此问题

重新启动Visual Studio可以解决此问题

您只需将sql字符串中的逻辑运算符“or”替换为“and”,如下所示:

来自主题(其中sem=“+ComboBox2.Text+”,年份级别=“+ComboBox1.Text+”,myconn)


我希望这能帮助您,兄弟,您只需将sql字符串中的逻辑运算符“或”替换为“and”,如下所示:

来自主题(其中sem=“+ComboBox2.Text+”,年份级别=“+ComboBox1.Text+”,myconn)

我希望这能帮到你兄弟^_^