我在這裏有一些我想知道的,我希望每個人都可以幫助我。所以這裏是我的問題,我怎樣才能縮短我的代碼。 :)縮短我的ElseIf聲明。怎麼樣?
If MetroTextBox1.Text = "" Then
If MetroCheckBox1.Checked = True And MetroCheckBox2.Checked = False Then
query = "select id, fname, mname, lname, dept, salary, ' ' as lengthservice from tbl_Employee where dresigned is null and " +
" (id like '%" & MetroTextBox1.Text & "%' or fname like '%" & MetroTextBox1.Text & "%' or mname like '%" & MetroTextBox1.Text & "%' or lname like '%" & MetroTextBox1.Text & "%' or dept like '%" & MetroTextBox1.Text & "%') "
dt = c.GetDataTable(query)
ElseIf MetroCheckBox2.Checked = True And MetroCheckBox1.Checked = False Then
query = "select id, fname, mname, lname, dept, salary, ' ' as lengthservice from tbl_Employee where dresigned is not null and " +
" (id like '%" & MetroTextBox1.Text & "%' or fname like '%" & MetroTextBox1.Text & "%' or mname like '%" & MetroTextBox1.Text & "%' or lname like '%" & MetroTextBox1.Text & "%' or dept like '%" & MetroTextBox1.Text & "%') "
dt = c.GetDataTable(query)
ElseIf MetroCheckBox1.Checked = True And MetroCheckBox2.Checked = True Then
query = "select id, fname, mname, lname, dept, salary from tbl_Employee" +
" where id like '%" & MetroTextBox1.Text & "%' or fname like '%" & MetroTextBox1.Text & "%' or mname like '%" & MetroTextBox1.Text & "%' or lname like '%" & MetroTextBox1.Text & "%' or dept like '%" & MetroTextBox1.Text & "%' "
dt = c.GetDataTable(query)
End If
ElseIf MetroTextBox1.Text <> "" Then
If MetroCheckBox1.Checked = True And MetroCheckBox2.Checked = False Then
query = "select id, fname, mname, lname, dept, salary, ' ' as lengthservice from tbl_Employee where dresigned is null and " +
" (id like '%" & MetroTextBox1.Text & "%' or fname like '%" & MetroTextBox1.Text & "%' or mname like '%" & MetroTextBox1.Text & "%' or lname like '%" & MetroTextBox1.Text & "%' or dept like '%" & MetroTextBox1.Text & "%') "
dt = c.GetDataTable(query)
ElseIf MetroCheckBox2.Checked = True And MetroCheckBox1.Checked = False Then
query = "select id, fname, mname, lname, dept, salary, ' ' as lengthservice from tbl_Employee where dresigned is not null and " +
" (id like '%" & MetroTextBox1.Text & "%' or fname like '%" & MetroTextBox1.Text & "%' or mname like '%" & MetroTextBox1.Text & "%' or lname like '%" & MetroTextBox1.Text & "%' or dept like '%" & MetroTextBox1.Text & "%') "
dt = c.GetDataTable(query)
ElseIf MetroCheckBox1.Checked = True And MetroCheckBox2.Checked = True Then
query = "select id, fname, mname, lname, dept, salary from tbl_Employee" +
" where id like '%" & MetroTextBox1.Text & "%' or fname like '%" & MetroTextBox1.Text & "%' or mname like '%" & MetroTextBox1.Text & "%' or lname like '%" & MetroTextBox1.Text & "%' or dept like '%" & MetroTextBox1.Text & "%' "
dt = c.GetDataTable(query)
End If
Else
query = "select id, fname, mname, lname, dept, salary, ' ' as lengthservice from tbl_Employee where id = ''"
dt = c.GetDataTable(query)
End If
你的代碼似乎凌亂了!我在第一個'if'中看到,你有:'如果MetroTextBox1.Text =「'Then'但後來在相關代碼塊中,則使用它的值:'如果MetroCheckBox1.Checked = True且MetroCheckBox2.Checked = False Then query = 「選擇ID,FNAME,...」 + \t \t \t \t \t \t 「(ID LIKE「%」 &** MetroTextBox1.Text **&......'這不是劑量似乎是正確的! –
什麼是' c'在你的代碼上面?我試圖編寫一個參數化的版本,以避免在沒有任何驗證的情況下傳遞'MetroTextBox1.Text'導致的SQL注入漏洞。 – LogicalFlaps
你應該使用'AndAlso' /'OrElse'而不是'And '/'或'。[爲什麼?](http://stackoverflow.com/q/302047/4934172)。 –