如何选择超过4个条件的记录

时间:2016-06-10 18:18:34

标签: mysql vb.net select

根据显示的标准选择记录

enter image description here

除非使用if else语句,否则我有什么办法可以根据这个标准从MySQL中选择记录。 实际上我的想法是在

之下
if CurrentLevel.SelectedItem <> Nothing AND Programme.SelectedItem = Nothing AND Gender.SelectedItem = Nothing Then

myconnection.Open()
Dim SelCmd as SqlCommand = New SqlCommand("Select * From StudentsList Where CurrentLevel = '"& CurrentLevel.SelectedItem &"'",myconnection)

我必须为所有可能的结果做到这一点。 这使代码非常冗长且令人厌烦。

是否有更短的方式来执行此搜索,因为我将使用近16个条件执行另一次搜索。

1 个答案:

答案 0 :(得分:0)

这个问题对我来说并不完全清楚。对于所有条件,您不需要新的if语句。您可以通过修改SQL查询本身来实现此目的。 SQL的主要目的之一是获取符合特定条件的数据。

SELECT * FROM StudentsList WHERE `CurrentLevel` = "level" AND `gender` = "male" AND `programme` = "something"

上面的SQL查询应该给你一个基本的想法。它将选择将CurrentLevel作为级别,将性别作为男性并且仅作为某种程序编程的行,其余的将被忽略。

编辑:

我不懂VB。这是C#中一个快速,肮脏的例子,它将帮助您理解这背后的基本逻辑。

string sqlQuery = "SELECT * FROM StudentsList ";
if(currentLevelDropDown.SelectedItem.Text != "") 
{
    sqlQuery + "WHERE CurrentLevel = " + currentLevelDropDown.SelectedItem.Text;
}

if(ProgrammeDropDown.SelectedItem.Text != "")
{
    sqlQuery + " AND WHERE programme = " + ProgrammeDropDown.SelectedItem.Text;
}

//Final Query becomes: SELECT * FROM StudentsList WHERE CurrentLevel = userSelectedOption AND WHERE programme = userSelectedProgrammeOption

//Finally execute the sqlQuery