根据显示的标准选择记录
除非使用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个条件执行另一次搜索。
答案 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