我在其他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
如您在示例图像中看到的,结果必须是 一年级至四年级,但仅第一学期所有科目 但在图片中还显示了第二学期。
这让我感到困惑,因为我在其他形式上具有完全相同的代码,但是它可以正常工作。请帮忙,谢谢你。
答案 0 :(得分:0)
重新启动Visual Studio解决了该问题。
答案 1 :(得分:0)
您只需要像这样将sql字符串中的逻辑运算符“或”替换为“和”:
from subject_bsit,其中sem ='“ + ComboBox2.Text +”'和year_level ='“ + ComboBox1.Text +”',myconn)
希望这对您有帮助,^ _ ^