首页 > 解决方案 > 选择案例陈述和数据验证

问题描述

我正在尝试使用 select case 语句验证数据范围。我遇到了其他嵌套选择案例的问题。这是可能的还是我一厢情愿的想法?或者我应该将要堆叠的选择案例语句分开吗?

例如,这是我在 vb 中的代码:

Select Case intyear
    Case 2000 To 2025
        Select Case intmonth
            Case 1 To 12
                BlnDateValid = True
        End Select
        Select Case intDay
            Case 1 To 31
                BlnDateValid = True
        End Select
        Select Case intHours
            Case 0 To 23
                BlnDateValid = True
        End Select
        Select Case intAddDays
            Case 0 To 60
                BlnDateValid = True
        End Select
        Select Case intAddHours
            Case 0 To 23
                BlnDateValid = True
        End Select
    Case Else
        BlnDateValid = False
End Select


If blnDatevalid = false then
    MessagebBox.Show("Please check all fields and enter valid 
data", "Invalid data", MessageBoxButtons.OK)

标签: vb.netvisual-studio-2010select-case

解决方案


不幸的是,缩进有意义并不能帮助代码有意义。的重点Select Case是巧妙地选择多个案例中的一个。A Select Casewith one case 是错误的代码,您应该改用If语句。在这种情况下,您尤其应该使用语句,因为您可以用单个语句If替换所有这些语句。Select CaseIf

If Not (intyear >= 2000 AndAlso intyear <= 2025 AndAlso
        intmonth >= 1 AndAlso intmonth <= 12 AndAlso
        intDay >= 1 AndAlso intDay <= 31 AndAlso
        intHours >= 0 AndAlso intHours <= 23 AndAlso
        intAddDays >= 0 AndAlso intAddDays <= 60 AndAlso
        intAddHours >= 0 AndAlso intAddHours <= 23) Then
    MessagebBox.Show("Please check all fields and enter valid data", "Invalid data", MessageBoxButtons.OK)
End If

推荐阅读