powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Проверка на null
11 сообщений из 11, страница 1 из 1
Проверка на null
    #32618521
nvn_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!
У меня такая проблема. Не могу проверить поле на null
if (IsDBNull(rs("IDSaler") or rs("IDSaler")=-1) then
Выдает такую ошибку
Operator is not valid for type 'DBNull' and type 'Integer'.
Поле IDSaler типа int.
Подскажите плиз
...
Рейтинг: 0 / 0
Проверка на null
    #32618629
Фотография Max Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nvn_Всем привет!
if (IsDBNull(rs("IDSaler") or rs("IDSaler")=-1) then

Скобки перепутал, попробуй так:
if IsDBNull(rs("IDSaler")) or rs("IDSaler")=-1 then
...
Рейтинг: 0 / 0
Проверка на null
    #32618768
nvn_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответ, действительно прогнал со скобками, правда ничего не изменило, как только убрал or rs("IDSaler")=-1 работает, как два условия - болт
if IsDBNull(rs("IDSaler")) or rs("IDSaler")=-1получается, что одновременно нельзя проверять на нул и на значение?
...
Рейтинг: 0 / 0
Проверка на null
    #32618801
vooo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно воспользоваться конструкцией ,например:
If condition [ Then ]
[ statements ]
[ ElseIf elseifcondition [ Then ]


Причем в первом If должна быть проверка на DBNull.Value (IsDBNull), а во втором на
определенное целое значение
...
Рейтинг: 0 / 0
Проверка на null
    #32619198
Фотография Max Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nvn_Спасибо за ответ, действительно прогнал со скобками, правда ничего не изменило, как только убрал or rs("IDSaler")=-1 работает, как два условия - болт
if IsDBNull(rs("IDSaler")) or rs("IDSaler")=-1получается, что одновременно нельзя проверять на нул и на значение?
Одновременно не только можно, но и нужно.
Правда тогда наверно ты опять перепутал - вместо OR надо AND ставить.
...
Рейтинг: 0 / 0
Проверка на null
    #32619208
Фотография Max Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пардон, судя по контексту всё-таки OR.
Почему не работает не знаю.
Max Pro
...
Рейтинг: 0 / 0
Проверка на null
    #32619241
Фотография Max Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Max Pro nvn_Спасибо за ответ, действительно прогнал со скобками, правда ничего не изменило, как только убрал or rs("IDSaler")=-1 работает, как два условия - болт
if IsDBNull(rs("IDSaler")) or rs("IDSaler")=-1получается, что одновременно нельзя проверять на нул и на значение?
Одновременно не только можно, но и нужно.

Попробуй вместо rs("IDSaler")=-1 вот что:
iif(not isdbnull(rs("idsaler")) and not isnothing(rs("idsaler")),rs("idsaler")=-1,false)
Понимаешь, эта функция помогает избежать ситуации, при которой выражение rs("IDSaler")=-1 примет значение Is Null. В SQL-запросе такого извращения не требуется, так как язык SQL нормально переваривает значение Is Null.
...
Рейтинг: 0 / 0
Проверка на null
    #32619323
nvn_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо за участие, не стал я мучаться, взял else if, все нормально хавает.
Как будет больше времени, обязательно попробую вариант с isnothing.
...
Рейтинг: 0 / 0
Проверка на null
    #32634181
Фотография Magnus23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это как раз место для AndAlso - условный оператор.

Код: plaintext
if Not IsDBNull(rs("IDSaler")) ANDALSO rs("IDSaler")=- 1 

В этом случае, если первое выражение = False(null), то второе не будет проверятся вообще.

Почитайте МСДН - bitwise operataros.

Magnus
...
Рейтинг: 0 / 0
Проверка на null
    #32634212
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это как раз место для AndAlso - условный оператор.

Только не AndAlso, а OrElse

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
Проверка на null
    #32635116
Фотография Magnus23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может быть :), я логику конкретного выражения не смотрел.

Magnus
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Проверка на null
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]