Member 12754823 Ответов: 3

Поиск конкретного fied в datagridview[VB.NET]


Привет ребята,
У меня есть небольшая проблема, которую я не могу решить. У меня есть Datagridview с несколькими столбцами и строками. Я ищу текстовое поле с номером элемента, чтобы отобразить полную строку . Вот мой код:
Dim found As Boolean = False
     Try
         'search in all the rows in my datagridview
         For Each row As DataGridViewRow In data_item.Rows
             'if the colomns NumeroItem = my textbox... found = true
           If (row.Cells.Item("NumeroItem").Value.ToString = txt_search.Text) Then
                 found = True
             End If
 
         Next
     Catch ex As Exception
         MsgBox(ex.Message)
     End Try
     If found Then
         'Filter to filt the contain of the textbox
         DataTable1.DefaultView.RowFilter = "NumeroItem LIKE '*" & txt_search.Text & "*'"
     End If


Мое сравнение делает то, что я хочу правильно, когда оно приходит к правильному значению, оно входит в мое состояние. но он поймал ошибку примерно так: Ссылка на объект не установлена на экземпляр объекта. Я не понимаю, почему?

Если бы кто-нибудь мог мне помочь, это было бы очень мило!

Что я уже пробовал:

Я пытаюсь отладить его и смотреть строчку за строчкой, но все в порядке! :(

Suvendu Shekhar Giri

Является ли "data_item"gridview?

Member 12754823

Да, я редактировал с некоторыми комментариями, извините за это!

[no name]

"Я не понимаю почему", потому что где-то в вашем коде вы пытаетесь использовать свойства или методы объекта, который является нулевым. Отладчик скажет вам, какой объект. Мы не можем отладить ваш код для вас.

Member 12754823

Да, я уже пытаюсь отладить его, но у меня есть 2400 строк и 11 столбцов, так что это немного долго, чтобы смотреть построчно содержимое моего datagridview! ;) Я надеялся, что у кого-то уже была такая же ошибка!

[no name]

Да... имейте одно и то же исключение все время. Я, наверное, готовлю 5 или 6 Перед завтраком. У многих и многих людей есть одна и та же ошибка. Это вызвано тем же самым, и вы исправляете это точно так же, как и все остальные.

Member 12754823

Спасибо за вашу помощь;) Но да, я нахожу его.

Maciej Los

Что такое источник datagridview: datatable?

3 Ответов

Рейтинг:
24

MayurDighe

Убедитесь, что txt_search.Текст всегда есть какое-то значение, либо введенное вами, либо значение по умолчанию[например, txt_search.Text = "ничего"].

Ссылка на объект не установлена на экземпляр объекта.
Это обычно происходит, когда есть данные, доступные для дальнейшей обработки, но система не понимает, куда их передавать, если мы явно не позаботимся об этом.

Это хорошо. Вы используете Try Catch & Debugger. Также использовать ELSE условие для отслеживания того, где код не может продолжить работу и сделать некоторые Мозговой штурм чтобы сэкономить много времени при выполнении отладки.


Счастливого Программирования... ;)


С уважением,
Маюр Диге
Как Кодировать Для:


Member 12754823

Спасибо Вам за ваш ответ, он помог мне найти мой жучок! У меня была пустая строка в конце моего datagridview, и мне нужно было повторить-2 ! Еще раз спасибо, ты потрясающая!

MayurDighe

Ты внимательно слушал. Приятно слышать ;).
Вы можете сделать еще одну вещь - " принять решение"

Рейтинг:
0

Patrice T

Цитата:
Я пытаюсь отладить его и смотреть строчку за строчкой, но все в порядке! :(

Вы здесь, потому что знаете, что что-то не так, вы просто не находите, что не так.

Опять в отладчик
поставить точку останова в коде
откройте окно "локальные переменные"

по мере выполнения кода строка за строкой проверяйте содержание и тип каждой задействованной переменной. вы можете обнаружить, например, что DataTable1 это не то, что вы ожидаете.


Member 12754823

Да я уже пробую! Но у меня есть 2400 строк и 11 столбцов в моей таблице данных, так что это немного долго,чтобы проверить содержимое строка за строкой, я все еще получаю свою проблему. Я надеялся, что у кого-то уже была такая же проблема! Но спасибо за ваш ответ ppolymorphe я продолжу свои исследования!

Patrice T

Прежде всего, скажите нам, где происходит ошибка.
Вы используете try/catch, есть ли у вас особые причины ожидать сбоя в этой части вашего кода ?
Построчно-это специальный режим отладчика, который выполняет 1 строку кода и снова делает паузу, чтобы вы могли проверить, как изменились переменные.