powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как обработать null в DataTable?
25 сообщений из 29, страница 1 из 2
Как обработать null в DataTable?
    #38194623
t_e_m_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день! Возникла такая неприятная ситуация со значениями null, убил на нее пол дня и так ничего не решил.
С помощью SqlCommand я делаю выборку, в которой объединяю несколько таблиц, после чего если нет расшифровки кода, то в выборке появляется значения null, так и должно быть! После чего я эту выборку вывожу в DataGridView, если значение не null, то все работает прекрасно, но если там Null, то вылетает
"The value for column 'sz_Description' in table 'AUDIT1' is DBNull."
Пытался проверить это поле:
Код: vbnet
1.
2.
3.
row.MyField is Nothing
row.MyField is DBNUll.Value
IsDBNull(row.MyField)


ничего не помогает все пропускает этот Null и вылетает сообщение как выше описал.
Кто-то с таким сталкивался?
...
Рейтинг: 0 / 0
Как обработать null в DataTable?
    #38194702
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
if (row["myField"] == DBNull.Value)
    MessageBox.Show("Пусто.");
...
Рейтинг: 0 / 0
Как обработать null в DataTable?
    #38194740
t_e_m_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пишу на vb.net знак равенства там "=" записав так ваш вариант с одним "=" условие подчеркнулось синей линией - ошибка суть
что нельзя System.DbNull нельзя привести к String
...
Рейтинг: 0 / 0
Как обработать null в DataTable?
    #38194750
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я дал пример для нетипизированного датасета.
...
Рейтинг: 0 / 0
Как обработать null в DataTable?
    #38194756
Фотография fortibransa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
if (row["myField"] == DBNull.Value)
    MessageBox.Show("Пусто.");


Попробуйте так
Код: c#
1.
2.
if (row["myField"].Equals(DBNull.Value))
    MessageBox.Show("Пусто.");
...
Рейтинг: 0 / 0
Как обработать null в DataTable?
    #38194768
Фотография fortibransa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А так инфы малова-то, грид null нормально показывает, это если непосредственно к полю обращаешься, то да Exception ибо в DataSete в таблице на поле стоит по умолчанию на null -> Exception.
...
Рейтинг: 0 / 0
Как обработать null в DataTable?
    #38194771
t_e_m_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Алексей КЯ дал пример для нетипизированного датасета.
а как быть с типизированным?
...
Рейтинг: 0 / 0
Как обработать null в DataTable?
    #38194777
t_e_m_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fortibransa
Код: c#
1.
2.
if (row["myField"] == DBNull.Value)
    MessageBox.Show("Пусто.");


Попробуйте так
Код: c#
1.
2.
if (row["myField"].Equals(DBNull.Value))
    MessageBox.Show("Пусто.");


так тоже вылетает с тем же сообщением что и выше
...
Рейтинг: 0 / 0
Как обработать null в DataTable?
    #38194779
Фотография fortibransa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fortibransaА так инфы малова-то, грид null нормально показывает, это если непосредственно к полю обращаешься, то да Exception ибо в DataSete в таблице на поле стоит по умолчанию на null -> Exception.
...
Рейтинг: 0 / 0
Как обработать null в DataTable?
    #38194786
t_e_m_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fortibransaА так инфы малова-то, грид null нормально показывает, это если непосредственно к полю обращаешься, то да Exception ибо в DataSete в таблице на поле стоит по умолчанию на null -> Exception.
У меня типизированный DataSet в нем ест таблица Audit1, я по ней иду циклом For Each, проверяемое поле Field1 в базе nvarchar, мне как-то нужно поймать этот null что бы программа не вылетела
...
Рейтинг: 0 / 0
Как обработать null в DataTable?
    #38194793
Фотография fortibransa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
t_e_m_afortibransaА так инфы малова-то, грид null нормально показывает, это если непосредственно к полю обращаешься, то да Exception ибо в DataSete в таблице на поле стоит по умолчанию на null -> Exception.
У меня типизированный DataSet в нем ест таблица Audit1, я по ней иду циклом For Each, проверяемое поле Field1 в базе nvarchar, мне как-то нужно поймать этот null что бы программа не вылетелаВоткни в try{...}catch и все.
...
Рейтинг: 0 / 0
Как обработать null в DataTable?
    #38194795
Фотография fortibransa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пардон, я лошара
Код: c#
1.
2.
if (DBNull.Value.Equals(row["myField"]))
    MessageBox.Show("Пусто.");
...
Рейтинг: 0 / 0
Как обработать null в DataTable?
    #38194803
t_e_m_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fortibransat_e_m_aпропущено...

У меня типизированный DataSet в нем ест таблица Audit1, я по ней иду циклом For Each, проверяемое поле Field1 в базе nvarchar, мне как-то нужно поймать этот null что бы программа не вылетелаВоткни в try{...}catch и все.

сделал так
Код: vbnet
1.
2.
3.
4.
5.
Try
                        dgw1.Item(1, r).Value = "[" + row.AU_NPARAMETER.ToString() + "] " + row.sz_Description
Catch ex As Exception
                        dgw1.Item(1, r).Value = "[" + row.AU_NPARAMETER.ToString() + "] " + " "
End Try


все равно получаю
"Приведение типа "|DBNull" к типу "String" является недопустимым."
...
Рейтинг: 0 / 0
Как обработать null в DataTable?
    #38194810
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
t_e_m_a
Как я понял у тебя поле sz_Description - строковое...
Дык запрос поменяй, типа:
Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT ...,
CASE WHEN F.sz_Description is Null THEN '<пусто>'
ELSE F.sz_Description
END as sz_Description
FROM (
....
) F
...
Рейтинг: 0 / 0
Как обработать null в DataTable?
    #38194811
t_e_m_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fortibransaПардон, я лошара
Код: c#
1.
2.
if (DBNull.Value.Equals(row["myField"]))
    MessageBox.Show("Пусто.");


тоже вылетает
...
Рейтинг: 0 / 0
Как обработать null в DataTable?
    #38194815
Фотография fortibransa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще попробуй
...
Рейтинг: 0 / 0
Как обработать null в DataTable?
    #38194816
Фотография fortibransa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
t_e_m_afortibransaПардон, я лошара
Код: c#
1.
2.
if (DBNull.Value.Equals(row["myField"]))
    MessageBox.Show("Пусто.");


тоже вылетаетв шарпе всегда отлично работает
...
Рейтинг: 0 / 0
Как обработать null в DataTable?
    #38194829
t_e_m_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fortibransaЕще попробуй
выбрать Throw Exception? Если да то оно уже стоит
...
Рейтинг: 0 / 0
Как обработать null в DataTable?
    #38194830
t_e_m_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владимир САt_e_m_a
Как я понял у тебя поле sz_Description - строковое...
Дык запрос поменяй, типа:
Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT ...,
CASE WHEN F.sz_Description is Null THEN '<пусто>'
ELSE F.sz_Description
END as sz_Description
FROM (
....
) F


интересный вариант сейчас попробую)
...
Рейтинг: 0 / 0
Как обработать null в DataTable?
    #38194838
Фотография fortibransa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
t_e_m_afortibransaЕще попробуй
выбрать Throw Exception? Если да то оно уже стоитА другое не пробовал? :)
Еще можно Default поменять.
...
Рейтинг: 0 / 0
Как обработать null в DataTable?
    #38194849
t_e_m_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владимир САt_e_m_a
Как я понял у тебя поле sz_Description - строковое...
Дык запрос поменяй, типа:
Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT ...,
CASE WHEN F.sz_Description is Null THEN '<пусто>'
ELSE F.sz_Description
END as sz_Description
FROM (
....
) F



Огромное спасибо этот вариант оказался самым работоспособным, как я сам до этого не додумался обрабатывать Null еще в запросе)
Всем спасибо за помощь!!!
...
Рейтинг: 0 / 0
Как обработать null в DataTable?
    #38194914
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fortibransaПардон, я лошара
Код: c#
1.
2.
if (DBNull.Value.Equals(row["myField"]))
    MessageBox.Show("Пусто.");


Код: c#
1.
2.
if (row.IsNull("myField"))
    MessageBox.Show("Пусто.");
...
Рейтинг: 0 / 0
Как обработать null в DataTable?
    #38194921
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
t_e_m_aВладимир САt_e_m_a
Как я понял у тебя поле sz_Description - строковое...
Дык запрос поменяй, типа:
Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT ...,
CASE WHEN F.sz_Description is Null THEN '<пусто>'
ELSE F.sz_Description
END as sz_Description
FROM (
....
) F



Огромное спасибо этот вариант оказался самым работоспособным, как я сам до этого не додумался обрабатывать Null еще в запросе)
Всем спасибо за помощь!!!Работающий вариант - это, конечно, хорошо...
Только узнать после его использования в приложении, какое на самом деле значение (null/не-null) в полученном результате - не менее "интересная" практическая задача.
...
Рейтинг: 0 / 0
Как обработать null в DataTable?
    #38194929
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо смотреть в сторону Entity Framework, посторение модели, сущностей,...
Вот тогда появятся у вас и null поля.... которые и надо использовать...
...
Рейтинг: 0 / 0
Как обработать null в DataTable?
    #38195042
t_e_m_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sphinx_mvfortibransaПардон, я лошара
Код: c#
1.
2.
if (DBNull.Value.Equals(row["myField"]))
    MessageBox.Show("Пусто.");


Код: c#
1.
2.
if (row.IsNull("myField"))
    MessageBox.Show("Пусто.");



Вы подали идею мне, вот что получилось:
так как у меня DataSet типизированный, то он для проверки на Null нужно делать так:
Код: vbnet
1.
2.
3.
if row.IsMyFiledNull() Then
MessageBox.Show("пусто")
EndIf



метод IsMyFiledNull() создается DataSet-ом автоматически для каждого столбца, только вместо "MyFiled" будет название соответствующего столбца
...
Рейтинг: 0 / 0
25 сообщений из 29, страница 1 из 2
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как обработать null в DataTable?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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