Фильтр данных Vb.Net с помощью поля со списком - PullRequest
1 голос
/ 13 апреля 2019

У меня возникли проблемы с использованием 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

enter image description here

Как видно на примере изображения, результаты должны быть Весь год Уровень от первого года до четвертого года, но только ВСЕ предметы первого семестра но на картинке это также показывает второй семестр.

Это меня смущает, потому что у меня точно такой же код в другой форме, но он работает правильно. Пожалуйста, помогите большое спасибо.

Ответы [ 2 ]

0 голосов
/ 13 апреля 2019

Вам просто нужно заменить логический оператор «или» на «и» в строке SQL следующим образом:

из subject_bsit, где sem = '"+ ComboBox2.Text +"' и year_level = '"+ ComboBox1.Text +"' ", myconn)

Надеюсь, это поможет тебе, братан, ^ _ ^

0 голосов
/ 13 апреля 2019

Перезапуск Visual Studio решает проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...