![]() |
Модераторы: gambit |
![]() ![]() ![]() |
|
ViterAlex |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 94 Регистрация: 7.10.2009 Где: Харьков Репутация: нет Всего: 7 |
В свойствах DGV в DataSource записан DataView. Программно к DataView я прикрепляю таблицу данных при загрузке формы с DGV. При первом открытии формы все нормально, но стоит форму закрыть и открыть вновь, как вылетает ошибка, там где столбцы делаются невидимыми. Говорит, что не задана ссылка на объект. Хотя таблица существует, DataView существует, DataSource для DGV задан, а столбцов у DGV почему-то уже нет. В чем может быть проблема? может как-то обновлять их нужно? Таблица данных точно заполнена и привязана к DataView
|
|||
|
||||
KuMa1104 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 541 Регистрация: 16.4.2009 Где: Ростов-на-Дону Репутация: 1 Всего: 3 |
Ух неселён я в VB но судя по твоим словам
наверно дело в том что ты место того чтобы опять обращаться к существуюшему классу, создаеш новый. Добавлено через 1 минуту и 17 секунд Что пишет та??? что то вроде Obgect reference not set of ..... Это сообщение отредактировал(а) KuMa1104 - 6.11.2009, 23:36 -------------------- Галактика – суровая штука. Чтобы в ней выжить, надо знать, где твое полотенце. Время - штука относительная... а время обеда - ещё более относительная |
|||
|
||||
ViterAlex |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 94 Регистрация: 7.10.2009 Где: Харьков Репутация: нет Всего: 7 |
Object reference not set to an instance of an object. Похоже, что ты прав, но почему так происходит? Если форму не закрывать, а просто прятать, то всё работает, а если закрыть, то следующий вызов дает такое исключение. Я же проверял, DataSource на месте, таблица в DataView тоже на месте, только в DataGridView нет столбцов. Поясню еще принцип работы, может это поможет. Итак, есть основная форма, которая добавляет записи в таблицу по нажатию кнопки. Поля в таблице задаются сразу при загрузке основной формы. DataGridView используется только для отображения. Никакого редактирования я не планирую. Эта строчка
появилась уже после того, как вылезла ошибка. До этого я присоединял таблицу к DataView при создании таблицы. Сначала я вообще сделал без DataView и прикручивал таблицу к DataGridView напрямую. Но, поскольку нужно будет фильтровать выводимые строки, то решил остановится на DataView, как наиболее простом компоненте для этой цели. |
|||
|
||||
KuMa1104 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 541 Регистрация: 16.4.2009 Где: Ростов-на-Дону Репутация: 1 Всего: 3 |
Ой ты так много понаписал а у меня бадун, вникать очень трудно, а воможно что и не нужно.
Компилятор ругаеться что у тебя нет обекта.
Поматри внемательно, может ты когда ее повторно вызываеш, ты забыл её инициализировать -------------------- Галактика – суровая штука. Чтобы в ней выжить, надо знать, где твое полотенце. Время - штука относительная... а время обеда - ещё более относительная |
|||
|
||||
ViterAlex |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 94 Регистрация: 7.10.2009 Где: Харьков Репутация: нет Всего: 7 |
Перед открытием окна переменная dtStatistic уже инициализирована, в ней содержатся данные и она привязана к DataView, а DataView, в свою очередь, привязан к DataGridView еще на этапе проектирования.
|
|||
|
||||
KuMa1104 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 541 Регистрация: 16.4.2009 Где: Ростов-на-Дону Репутация: 1 Всего: 3 |
Ой, разум мой несколько прояснился и я начал замечать детали)
Но Компилятор ругаеться что у тебя нет обекта!!!!!!!!!!!!!!!!!!!!!!!!!!! Значит ты либо указываеш не правильное имя для столбца и он его не находит, либо у тебя его тупа нет, наверное всётаки там ничего нет!!! Поставь брекпоинт, и проверь в дебага в том месте где у тебя выкидывает, к чима у тебя превязана DataGridView и что там содержиться. Одно дело это то что ты там считаеш, а совсем другое то что там может оказаться))))))) -------------------- Галактика – суровая штука. Чтобы в ней выжить, надо знать, где твое полотенце. Время - штука относительная... а время обеда - ещё более относительная |
|||
|
||||
ViterAlex |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 94 Регистрация: 7.10.2009 Где: Харьков Репутация: нет Всего: 7 |
Уважаемый KuMa1104, я совершенно с тобой согласен. Первое, что я сделал, это поставил брейкпоинт и посмотрел. Всё проверил: таблица есть, столбцы в ней есть, DataView тоже есть и таблица к нему привязана, сам DataView привязан к DataGridView, но столбцов у DataGridView нет. Columns = 0 и хоть кол на голове теши! Опять же эта штука проявляется только если форму с DataGridView открыть, закрыть и опять открыть. Форма не главная, вызывается из меню. Так вот, запустил я свою программу. Вызываю это окно со статистикой. Показывает, всё на месте: и таблица, и столбцы указанные спрятаны. Хорошо, закрыл форму, вызываю её опять. И тут я получаю мессэдж, что нет у меня таких столбцов |
|||
|
||||
KuMa1104 |
|
||||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 541 Регистрация: 16.4.2009 Где: Ростов-на-Дону Репутация: 1 Всего: 3 |
Вот плохо что ты на VB пишеш, я ж провыерить нормально не могу. Но проект выложи дэбагом проидусть всётаки.
Собственно интересуют 2 строчки. Если таблица есть, столбцы в ней есть, DataView тоже есть и таблица к нему привязана. То проверь ещё раз, сначала у DataView по твоему утверждению там не НОЛЬ только проверь во второй раз когда форму открываеш.
Если там не ноль, то тогда когда привязываеш её к dataGridView1 то после у него тоже свойство
они должны совпадать, если нет то проверь свойства на совпадения
-------------------- Галактика – суровая штука. Чтобы в ней выжить, надо знать, где твое полотенце. Время - штука относительная... а время обеда - ещё более относительная |
||||||||
|
|||||||||
ViterAlex |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 94 Регистрация: 7.10.2009 Где: Харьков Репутация: нет Всего: 7 |
Вот что показывает на брэйкпоинт. Всё есть.
![]() Всё проверил, всё на месте, кроме Columns у DataGridView при повторном вызове формы. Проект выслал. |
|||
|
||||
KuMa1104 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 541 Регистрация: 16.4.2009 Где: Ростов-на-Дону Репутация: 1 Всего: 3 |
И где он??? Куда ты его выслал?? Вот так нужно Афоризм: Добавлено через 11 минут и 51 секунду И не забудь Базу данных)) Присоединённый файл ( Кол-во скачиваний: 3 ) ![]() -------------------- Галактика – суровая штука. Чтобы в ней выжить, надо знать, где твое полотенце. Время - штука относительная... а время обеда - ещё более относительная |
|||
|
||||
ViterAlex |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 94 Регистрация: 7.10.2009 Где: Харьков Репутация: нет Всего: 7 |
Выслал на мыло тебе, ящик, что на рамблере
База данных не нужна. Просто запусти, выбери меню «Статистика», нажми «Начать слежку», «Остановить слежку». Данные в таблицу добавятся. Присоединённый файл ( Кол-во скачиваний: 2 ) ![]() |
|||
|
||||
KuMa1104 |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 541 Регистрация: 16.4.2009 Где: Ростов-на-Дону Репутация: 1 Всего: 3 |
Я посмотрел, VB я наблюдал впервые.
Подчёркиваю я понятия о нём не имею!!!!!!!!!!!!!! Я несовсем понемаю, механизмы создания в нём обектов и удаления их. Честно говоря многое меня повергло в шок. Я так понял что там переменные не инициализируються вообще. Взгленул на твою проблему. Исправил)))) вставь в код для обработчика клика
вместо своего
Я взял твой метод инициализации и заставил инициализировать каждый раз при вызове. Я не знаю где и что там не работало, и знать не хочу, дальше сам методом тыка убери всё ненужное от туда и будет работать. А после возьми книжку по С# и изучай))))) Добавлено через 8 минут и 33 секунды Блин слушай я себя реально после этого чуть больше уважать стал. Вот сижу дальше текст твоей программы читаю, в именно VB вообще понять ничего не могу ![]() Но всё работает))) -------------------- Галактика – суровая штука. Чтобы в ней выжить, надо знать, где твое полотенце. Время - штука относительная... а время обеда - ещё более относительная |
||||
|
|||||
ViterAlex |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 94 Регистрация: 7.10.2009 Где: Харьков Репутация: нет Всего: 7 |
KuMa1104, ты гений, хотя я сам не понимаю почему.
Перенес объявление переменной dtStatistic внутрь главной формы и всё заработало. Но я не пойму почему так происходит. Ведь я её изначально объявил как Shared, и инициализировал при загрузке главной формы. Если я закрываю окно, то класс уничтожается? Что, если переменная объявлена внутри класса, то её обязательно внутри класса и инициализировать нужно? Как-то я не совсем понимаю. Про си-шарп я задумываюсь давно, но толчка нет, наверное придется «плюсы» все-таки учить, нужно будет скоро по работе |
|||
|
||||
KuMa1104 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 541 Регистрация: 16.4.2009 Где: Ростов-на-Дону Репутация: 1 Всего: 3 |
Не чего страшного это же VB думаю его никто до конца не понимает))))) -------------------- Галактика – суровая штука. Чтобы в ней выжить, надо знать, где твое полотенце. Время - штука относительная... а время обеда - ещё более относительная |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Базы данных под .NET | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |