0

我收到了这个错误,我不知道如何解决它。我知道我应该写下我尝试过的内容,但我不知道该尝试什么,即使在寻找了几个小时来处理错误之后。

如果需要更多信息,请告诉我。谢谢

代码中突出显示的部分是:

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
4

1 回答 1

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)实际上为 null,则调用Value它也可能导致错误。如果您使用调试器,您应该能够查明哪个值为 null 并处理它,或者如果您希望某个值存在而它不存在,则查看它为 null 的原因。

于 2013-07-18T16:25:46.047 回答