是否有使用15 If语句的替代方法?

时间:2016-01-28 10:39:05

标签: vb.net visual-studio

我的ComboBox中有15个项目,当用户选择一个项目时,我想在我的TextBox中展示不同的内容。

目前我有:

If cb_dropdown.SelectedIndex = 0 Then
    RTB_Sql.Text = "update access
set accessdesc = 'Less than 5' where accessID < '5'"
Else
    If cb_dropdown.SelectedIndex = 1 Then
        RTB_Sql.Text = "update access
set accessdesc = 'More than 5' where accessID > '5' and < '10' "
    Else
        If cb_dropdown.SelectedIndex = 2 Then
            RTB_Sql.Text = ""

等...

是否有一种更好,更有条理的方法可以解决这个问题,因为它看起来很邋??

2 个答案:

答案 0 :(得分:3)

是的,它被称为select

Select Case cb_dropdown.SelectedIndex
    Case 0 To 4
        RTB_Sql.Text = "update access
set accessdesc = 'Less than 5' where accessID < '5'"
    Case 5
        RTB_Sql.Text = [...]
    Case Else
        RTB_Sql.Text = [...]
End Case

虽然在你的情况下,我认为你在寻找的是&lt; (小于)和&gt; (大于)。

If cb_dropdown.SelectedIndex < 5 Then
    RTB_Sql.Text = "update access set accessdesc = 'Less than 5' where accessID < '5'"
ElseIf cb_dropdown.SelectedIndex < 10 Then
    RTB_Sql.Text = "update access set accessdesc = 'More than 5' where accessID > '5' and < '10' "
End If

虽然不太确定你要做什么。也许如果你更详细地解释一下,有人可以提供更好的答案。所以让我猜一想:

Dim n As Integer = cb_dropdown.SelectedIndex * 5
RTB_Sql.Text = "update access set accessdesc = 'More than " + n + "' where accessID > '" + n + "' and < '" + (n+6) + "' "

这将根据SelectedIndex:

为您提供以下结果
  • 0 =从1到包括5
  • 1 =从6到包括10
  • 等...

如果您想将其向下移动一个(在第一批中包括0而不是5),则只需更改&gt;到&gt; =和6到5。

答案 1 :(得分:0)

如果要检查值的范围,也可以使用类似的内容:

Sub Main()
        Dim i As Integer = 6

        Select Case True
            Case 0 <= i AndAlso i < 5
                Console.WriteLine("i is between 0 and 4")

            Case 6 <= i
                Console.WriteLine("i is 6 or greater")
        End Select



        Console.ReadLine()
    End Sub

请注意,它会在第一个真实状态下停止。