你调用的对象是空的。查找字符串的vb.net

时间:2013-07-18 16:18:41

标签: 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

1 个答案:

答案 0 :(得分:3)

很难确定问题的根源是什么,但您可以安全地在尝试对其执行任何操作之前检查单元格,并在单元格为空的情况下返回。类似的东西:

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并处理它,或者如果您希望存在一个值而不是它,则查看为什么它为null的原因。