Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / WinForms, .Net Framework Новый топик    Ответить
 проверить значение на null в oracledatareader.getoraclevalue()  [new]
HANK
Member

Откуда:
Сообщений: 384
Всем привет! Подскажите как проверить значение на null в oracledatareader.getoraclevalue()
бьюсь разными способами результат - неверный. в частности
кто-то предложил
oracledatareader reader2 = new oracledatareader();
 var res = reader2.GetOracleValue(reader2.GetOrdinal("OT")).ToString();
if (!string.IsNullOrWhiteSpace(res))
{
  rep("Отчество пустое");
}
else
{
  rep("Отчество заполнено");
}


но это не работает
проверял и с DBNULL но тоже не получается, прошу подсказать как корректно обработать значение столбца произвольного типа на null при выводе
25 сен 17, 10:19    [20819858]     Ответить | Цитировать Сообщить модератору
 Re: проверить значение на null в oracledatareader.getoraclevalue()  [new]
Pallaris
Member

Откуда: Украина, Донецк
Сообщений: 1565
так а что там в res, когда ты ждешь IsNullOrWhiteSpace?
25 сен 17, 10:34    [20819901]     Ответить | Цитировать Сообщить модератору
 Re: проверить значение на null в oracledatareader.getoraclevalue()  [new]
HANK
Member

Откуда:
Сообщений: 384
Pallaris
так а что там в res, когда ты ждешь IsNullOrWhiteSpace?

в res содержит: 'НИКОЛАЕВИЧ' - это отчетство
25 сен 17, 10:38    [20819909]     Ответить | Цитировать Сообщить модератору
 Re: проверить значение на null в oracledatareader.getoraclevalue()  [new]
HANK
Member

Откуда:
Сообщений: 384
а когда строка действительно пустая то получается что она имеет вид 'Null'
25 сен 17, 10:51    [20819944]     Ответить | Цитировать Сообщить модератору
 Re: проверить значение на null в oracledatareader.getoraclevalue()  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 29737
HANK,
Что значит произвольного типа?
Где твой исходный код?
25 сен 17, 11:37    [20820106]     Ответить | Цитировать Сообщить модератору
 Re: проверить значение на null в oracledatareader.getoraclevalue()  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 29737
В крайнем случае всегда можно в запросе нулл заменить на что угодно - nvl (....
25 сен 17, 11:38    [20820111]     Ответить | Цитировать Сообщить модератору
 Re: проверить значение на null в oracledatareader.getoraclevalue()  [new]
HANK
Member

Откуда:
Сообщений: 384
Petro123,
вот исходник,
 rep("Отчество");

                            if (DBNull.Value.Equals(reader2.GetOracleValue(reader2.GetOrdinal("OT"))))
                                //if (string.IsNullOrWhiteSpace(reader2.GetOracleValue(reader2.GetOrdinal("OT")).ToString()))
                            {
                                rep("Отчество пустое '");
                                rep("'"+ reader2.GetOracleValue(reader2.GetOrdinal("OT")) + "'");

                                P.Ot= "";
                            }
                            else
                            {
                                rep("Отчество заполнено ");
                                rep("'" + reader2.GetOracleValue(reader2.GetOrdinal("OT")) + "'"); 
                                P.Ot= reader2.GetOracleValue(reader2.GetOrdinal("OT")).ToString().Trim();

                            }


так вот когда оно пустое то все равно определяется как не пустое и когда его выводишь оно выводится 'Null'
25 сен 17, 11:41    [20820119]     Ответить | Цитировать Сообщить модератору
 Re: проверить значение на null в oracledatareader.getoraclevalue()  [new]
HANK
Member

Откуда:
Сообщений: 384
Petro123,
немного считаю не корректно ,к тому же заменять в запросе тонну полей. первый раз с такой проблемой сталкиваюсь, в других языках он так не возвращает когда строка пустая 'Null'
25 сен 17, 11:48    [20820142]     Ответить | Цитировать Сообщить модератору
 Re: проверить значение на null в oracledatareader.getoraclevalue()  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 29737
HANK,
Такой пример сделай
https://msdn.microsoft.com/ru-ru/library/system.data.oracleclient.oracledatareader.read(v=vs.110).aspx
25 сен 17, 12:28    [20820299]     Ответить | Цитировать Сообщить модератору
 Re: проверить значение на null в oracledatareader.getoraclevalue()  [new]
HANK
Member

Откуда:
Сообщений: 384
Petro123
HANK,
Такой пример сделай
https://msdn.microsoft.com/ru-ru/library/system.data.oracleclient.oracledatareader.read(v=vs.110).aspx


если имеешь в виду код, то да, все четко
ConnectToDb();//эта функция инициализации параметров подключения
comm.CommandText = "select * from myTable";
comm.CommandType = CommandType.Text;
conndb.Open();
OracleDataReader reader2 = null;
reader2 = commcod2.ExecuteReader();
if (reader2.HasRows)
{
  reader2.Read();
  if (DBNull.Value.Equals(reader2.GetOracleValue(reader2.GetOrdinal("OT"))))
 {
   rep("Отчество пустое '");
 
 }
 else
 {
   rep("Отчество заполнено ");

 }
}
25 сен 17, 12:48    [20820353]     Ответить | Цитировать Сообщить модератору
 Re: проверить значение на null в oracledatareader.getoraclevalue()  [new]
HANK
Member

Откуда:
Сообщений: 384
HANK,

и этот код не работает корректно
25 сен 17, 12:49    [20820356]     Ответить | Цитировать Сообщить модератору
 Re: проверить значение на null в oracledatareader.getoraclevalue()  [new]
buser
Member

Откуда: Санкт-Петербург
Сообщений: 3997
HANK,
if (reader2.IsDBNull(reader2.GetOrdinal("OT"))) 
25 сен 17, 13:02    [20820402]     Ответить | Цитировать Сообщить модератору
 Re: проверить значение на null в oracledatareader.getoraclevalue()  [new]
buser
Member

Откуда: Санкт-Петербург
Сообщений: 3997
buser, и да... дебугером пользуйтесь...
25 сен 17, 13:03    [20820408]     Ответить | Цитировать Сообщить модератору
 Re: проверить значение на null в oracledatareader.getoraclevalue()  [new]
HANK
Member

Откуда:
Сообщений: 384
buser,

Спасибо! так работает!
25 сен 17, 13:34    [20820554]     Ответить | Цитировать Сообщить модератору
Все форумы / WinForms, .Net Framework Ответить