Условное утверждение в выражении базы данных
-
29-09-2019 - |
Вопрос
Я хочу отобразить изображение, если выполнены 2 условия.
- Элемент данных не является нулевым
- Значение элемента данных больше 0
Разметка
<img id="Img1" runat="server" visible='<%#IIF( DataBinder.Eval(Container.DataItem,
"amount") is DBNull.Value Or DataBinder.Eval(Container.DataItem,
"amount") = 0, False, True)%>' src="/Images/check.png" />
Сообщение об ошибке
Оператор '=' не определен для типа «dbnull» и тип «целое число». Описание: Неизвестное исключение произошло во время выполнения текущего веб -запроса. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где он возник в коде.
Детали исключения: System.invalidcastException: Operator '=' не определено для типа «dbnull» и тип «целое число».
Решение
Попробуйте использовать OrElse
. Анкет В VB.NET Or
Условный оператор приводит к оценке обеих сторон независимо от успеха. Так что, если у вас есть NULL, это все равно попытается сравнить. С использованием OrElse
приведет к оценке второго условия, если первое верно.