![]() |
|
Модераторы: gambit, Partizan |
![]()
|
|
| Papirus |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 298 Регистрация: 19.4.2005 Где: Санкт-Петербург Репутация: -1 Всего: 1 |
VS.NET2005 & SQL server 2000
Такая вот байда. В БД есть таблица, в которой одно из полей типа smallint и большинство записей имеют неопределенное значение NULL. В DataGridView - в этом поле вместо Null отображается 0. Более того при обращению к записи в таблице датасета это поле также возвращает 0 вместо NULL. PreviewData - отображает пустые ячейки там где NULL. Заранее благодарен за помощь! |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 24 Всего: 232 |
Чтобы вместо "0" были другие значения - настраиваем свойство DefaultValue у колонки таблицы. Или, если значение уже приходит по select-запросу - настраиваем соотв. свойство в настройках поля таблицы SQL Server. Если же нужно проверить, что именно находится в колонке (пустое значение или 0) - сравниваем значение dataRow[index] с DBNull.Value (пресловутый NULL). Если типы не совпадают - например, в колонке лежит int а нет DBNull - значит имеем дело с заполненным полем таблицы.
-------------------- ![]() |
|||
|
||||
| Papirus |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 298 Регистрация: 19.4.2005 Где: Санкт-Петербург Репутация: -1 Всего: 1 |
В 2003 этот код срабатывал корректно - в 2005 rw.Item("PositionChild")=0 почему-то. DefaultValue - это ведь для новой записи?! А у меня существующие отображаются как 0, а не как пустая ячейка и судя по всему такое значение подставляется вместо NULL уже в таблице датасета. У меня могут быть и 0 значения, но пользователь должен видеть, что в ячейке 0 или NULL. Добавлено @ 08:56 Приходит NULL. |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 24 Всего: 232 |
Можно попробовать копнуть в сторону DataGridViewCellStyle.NullValue
-------------------- ![]() |
|||
|
||||
| Papirus |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 298 Регистрация: 19.4.2005 Где: Санкт-Петербург Репутация: -1 Всего: 1 |
||||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 24 Всего: 232 |
Всё замечательно работает:
Присоединённый файл ( Кол-во скачиваний: 3 )
WindowsApplication1.zip 67,65 Kb-------------------- ![]() |
|||
|
||||
| Papirus |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 298 Регистрация: 19.4.2005 Где: Санкт-Петербург Репутация: -1 Всего: 1 |
Спасибо, mr.DUDA!
Всему причиной моя тупость - дело и впрямь оказалось в DefaultValue (=0) таблицы БД. И значений =0 оказалось там навалом. При импорте этот дефолт и сработал, а я то ориентировалсья на оригинал, где 0 просто нет. Просто так совпало, что в PreviewData первыми отображались немногие данные, где значение поля было именно NULL, а в гриде - 0. Прошу извинить форумян за ложный аларм! |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Разработка Windows Forms | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |