2013-07-18 39 views
0

我得到這個錯誤,我不知道如何解決它。我知道我應該寫我所嘗試過的東西,但我不知道該怎麼去嘗試,即使在尋找幾個小時之後才知道如何處理這個錯誤。未將對象引用設置爲對象的實例。 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 
+2

只處理你的單元格值爲null的情況(如果你在null時調用'ToString',你會得到有問題的錯誤) –

+0

不可視化基本使用base 1索引?像dgvr.Cells(1)是第一個單元格? – Ted

+0

我對編碼完全陌生,我不知道如何處理它,甚至沒有看過示例,這就是爲什麼我跳了一個人可以幫助它。 – David

回答

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的原因,如果你期望一個值存在而它不存在。

+0

對不起,但在我的代碼中是什麼cellObj? – David

+0

'cellObj'是一個用於方便的臨時變量,不在您的代碼中,因爲Kevin在他的示例中對其進行了定義。 – Michael

+0

重要的是記住不要檢查對象上的IsNot Nothing,而不要檢查屬性。 – JanBorup

相關問題