обойти ошибку в DataGridView

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

cooler
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 90
Зарегистрирован: 09.08.2004 (Пн) 4:58
Откуда: Che sity

обойти ошибку в DataGridView

Сообщение cooler » 07.08.2007 (Вт) 10:09

Вобщем проблема следующая: есть на форме DataGridView c именем results. Когда я пытаюсь получить содержимое еще не заполненной ячейки или обратиться(узнать что там хранится) ее tag, который тоже еще пустой то вылетает ошибка
Object reference not set to an instance of an object.

Когда туда что-то записанно этого не происходит... Конечно можно тупо насовать туда пробелов, но наверняка можно как-то по другому...
код обращения
Код: Выделить всё
results.Rows(e.RowIndex).Cells(e.ColumnIndex).Value.ToString
results.Rows(e.RowIndex).Cells(e.ColumnIndex).tag.ToString

без использования tostring тоже самое.
Просьба не закидывать тухлыми помидорами и сильно не бить, даже если это тупой вопрос... В поиске был, ничего путнего не нашел, разве что это баг .net а вот как его обойти...
Windows написанна с применением искусственного интеллекта. И как любое разумное существо старается работать как можно меньше :))

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Сообщение iGrok » 07.08.2007 (Вт) 10:39

Try...Catch ?
label:
cli
jmp label

cooler
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 90
Зарегистрирован: 09.08.2004 (Пн) 4:58
Откуда: Che sity

Сообщение cooler » 07.08.2007 (Вт) 17:27

я плохо представляю как с этим работать... относительно недавно начал постигать технологию .net.... насколько я понял надо примерно так:
Код: Выделить всё
Try
            Catch ex As Exception
                If results.Rows(e.RowIndex).Cells(e.ColumnIndex).Tag.ToString <> "" Then
                    'редактируем уже существующую запись в БД
                    CommandSQL.CommandText = "update journal set journal.fio_id='" + results.Rows(e.RowIndex).Cells(0).Value.ToString + "', journal.class_sub_id='2', journal.marks='" + results.Rows(e.RowIndex).Cells(e.ColumnIndex).Value.ToString + "', journal.comments='abcdef' where  journal.date_time='" + results.Columns(e.ColumnIndex).Name.ToString + "'"
                    CommandSQL.ExecuteNonQuery()
                Else
                    'добавляем новую запись в бд
                    CommandSQL.CommandText = "insert into journal   (fio_id, class_sub_id, marks, date_time, comments) values ('" + results.Rows(e.RowIndex).Cells(0).Value.ToString + "','" + "2" + "', '" + results.Rows(e.RowIndex).Cells(e.ColumnIndex).Value.ToString + "', '" + results.Columns(e.ColumnIndex).Name.ToString + "','f')"
                    CommandSQL.ExecuteNonQuery()
                End If
            End Try

Но оно теперь вообще ничего не делает :( Может я что-то не так делаю? Пробовал смотреть что в ex.message но он походу все что внутри try... end try не выполняет :(
Windows написанна с применением искусственного интеллекта. И как любое разумное существо старается работать как можно меньше :))

cooler
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 90
Зарегистрирован: 09.08.2004 (Пн) 4:58
Откуда: Che sity

Сообщение cooler » 07.08.2007 (Вт) 20:34

Все, спасибо, разобрался... немного потупил и понял вродебы...
Windows написанна с применением искусственного интеллекта. И как любое разумное существо старается работать как можно меньше :))


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 33

    TopList