/ / Odkaz na objekt nie je nastavený na inštanciu objektu. vb.net hľadá reťazec - vb.net

Odkaz na objekt nie je nastavený na inštanciu objektu. vb.net hľadá reťazec - vb.net

I "m dostať túto chybu a ja neviem, ako na to."opraviť to. Viem, že som mal písať to, čo som sa snažil, ale nemám potuchy, čo skúsiť, dokonca aj keď sa pozriem na pár hodín, ako sa vysporiadať s chybou.

Ak potrebujete viac informácií, dajte mi vedieť. Vďaka

Zvýraznená časť kódu je:

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

Odkaz na objekt nie je nastavený na inštanciu objektu.

Výnimka NullReference bola nespracovaná kódom používateľa

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

odpovede:

3 pre odpoveď č. 1

Ťažko povedať, čo je koreňom problémuje, ale môžete byť v bezpečí len null skontrolovať bunku pred pokusom o vykonanie akejkoľvek akcie na to, a vrátiť sa v prípade, že bunka je null. Niečo ako:

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

Upozorňujeme tiež, že ak Cells(0) je vlastne null, odvolávajúc sa Value môže tiež spôsobiť chybu. Ak používate debugger, mali by ste byť schopní určiť, ktorá hodnota je null, a buď to zvládnuť, alebo sa pozrieť do dôvodov, prečo je null, ak očakávate, že hodnota je prítomná a nie je "t.