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

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


Причем в первом If должна быть проверка на DBNull.Value (IsDBNull), а во втором на
определенное целое значение
...
Рейтинг: 0 / 0
23.07.2004, 16:00
    #32619198
Max Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка на null
nvn_Спасибо за ответ, действительно прогнал со скобками, правда ничего не изменило, как только убрал or rs("IDSaler")=-1 работает, как два условия - болт
if IsDBNull(rs("IDSaler")) or rs("IDSaler")=-1получается, что одновременно нельзя проверять на нул и на значение?
Одновременно не только можно, но и нужно.
Правда тогда наверно ты опять перепутал - вместо OR надо AND ставить.
...
Рейтинг: 0 / 0
23.07.2004, 16:02
    #32619208
Max Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка на null
Пардон, судя по контексту всё-таки OR.
Почему не работает не знаю.
Max Pro
...
Рейтинг: 0 / 0
23.07.2004, 16:13
    #32619241
Max Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка на null
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
23.07.2004, 16:46
    #32619323
nvn_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка на null
Всем спасибо за участие, не стал я мучаться, взял else if, все нормально хавает.
Как будет больше времени, обязательно попробую вариант с isnothing.
...
Рейтинг: 0 / 0
04.08.2004, 03:19
    #32634181
Magnus23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка на null
Это как раз место для AndAlso - условный оператор.

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

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

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

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

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

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

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


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