У меня есть база данных с колонкой, помеченной PrintOnPage. Он может содержать значения «ALL», «LAST» или определенный номер страницы (1, 2, 3 и т. Д.), Все они хранятся в виде строки.
В моем коде у меня есть следующий IFоператор:
If ((PrintOnPage.ToUpper = "ALL") OrElse
(PrintOnPage.ToUpper = "LAST" And iPageNo = (_indexDatabase.GetField("LastPage").Trim) OrElse
(IsNumeric(PrintOnPage) And CInt(PrintOnPage) = iPageNo)) Then
Последнее условие оператора IF нарушается, если PrintOnPage является строкой, которую нельзя преобразовать в INT. Поскольку PrintOnPage может иметь значение LAST и iPageNo! = До последней страницы, указанной в базе данных, до тех пор, пока цикл не будет повторен до соответствующей страницы, это проблема.
Даже если значение IsNumeric равно False, вторая частьусловие после AND все еще проверяется и, таким образом, нарушается. Я пытаюсь избежать вложения во многие операторы IF, если могу.
Есть ли способ решить эту проблему в рамках одного и того же оператора IF?