/ / Посилання на об'єкт не встановлено в екземпляр об'єкта. vb.net шукає рядок - vb.net

Посилання на об'єкт не встановлено в екземпляр об'єкта. vb.net шукає рядок - vb.net

Я отримую цю помилку, і я не знаю, як це зробитиполагодити. Я знаю, що "я повинен писати те, що я намагався, але я поняття не маю, що спробувати, навіть після того, як кілька годин про те, як боротися з помилкою.

Якщо потрібно більше інформації, будь ласка, повідомте мені про це. Дякую

Виділена частина коду:

Dim cdtrabajador As String = dgvr.Cells(0).Value.ToString

Довідник об'єкта не встановлено для екземпляра об'єкта.

Виняток NullReference був оброблений користувачем

Private Sub PeopleDataGridView_CellFormatting(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) Handles DataGridView1.CellFormatting
If DataGridView1.RowCount > 0 AndAlso e.RowIndex > -1 Then
If e.RowIndex > -1 Then
Dim dgvr As DataGridViewRow = DataGridView1.Rows(e.RowIndex)
Dim cdtrabajador As String = dgvr.Cells(0).Value.ToString
Dim qry = From dr As PersonalObraDataSet.PersonalObRow In PersonalObraDataSet.PersonalOb Where dr.cdTrabajador = cdtrabajador
If qry.Count > 0 Then
Dim Nombre As String = qry.First.Nombre1
dgvr.Cells(1).Value = Nombre
End If
End If
End If
End Sub

Відповіді:

3 для відповіді № 1

Важко сказати напевно, який корінь проблемиє, але ви можете бути безпечними просто null перевірити клітинку перед тим, як спробувати виконати будь-яку дію на ній, і поверніться у випадку, коли клітина нульова. Щось на зразок:

Dim cellObj as Object = dgvr.Cells(0).Value
if Not cellObj = Nothing Then
Dim cdtrabajador As String = cellObj.ToString
"...
"Perform the rest of your code
Else
Return

Також зауважте, що якщо Cells(0) насправді нуль, викликаючи Value може також викликати помилку. Якщо ви використовуєте свій відладчик, ви повинні мати можливість точно визначити, яке значення є нульовим, і або обробляти його, або шукати причини, чому це значення null, якщо ви очікуєте, що значення буде присутнім, і це не так.