簡體   English   中英

在datagridview單元格錯誤中獲取價值

[英]Getting value in datagridview cell error

我有一個datagridview ,它包含5行,列名是:XS,S,M,L和XL。

首先,流程是用戶選擇品牌(CHL和XRA),如果用戶選擇XRA,則列名將重命名為-,1L,2L,3L,4L。

這里的問題是,每當我從重命名列名稱的單元格中獲取值時,都會遇到這種錯誤: 對象引用未設置為對象的實例。

這是我從單元格獲取值的示例代碼:

dvJOBranch.Rows(0).Cells.Item("M").Value.ToString

如果不重命名該列,則此代碼可以完美地工作,但是如果我重命名該列,則它有錯誤。

如果該列的索引沒有更改,則可以通過其索引而不是其名稱來訪問它:

dvJOBranch.Rows(0).Cells.Item(2).Value.ToString 'third column

請注意, 未將對象引用設置為對象的實例意味着您有一個NullReferenceException

上面的代碼行假設:

  • dvJOBranch.Rows(0) 不為null ,否則對Cell訪問將引發NullReferenceException
  • dvJOBranch.Rows(0).Cells.Item(2) 不為null ,否則對Item(2).Value訪問將拋出NullReferenceException
  • dvJOBranch.Rows(0).Cells.Item(2).Value 不為null ,否則調用.ToString()方法將引發NullReferenceException

您需要進行適當的測試以處理空值。

If dvJOBranch.Rows(0).Cells.Item(2).Value IsNot Nothing Then
    (...)
End If

另請參見什么是NullReferenceException,以及如何解決它?

請嘗試以下操作:

If dvJOBranch.Rows(0).Cells.Item(2).Value IsNot Nothing OrElse String.IsNullOrEmpty(dvJOBranch.Rows(0).Cells.Item(2).Value.ToString)
(...)
End if

這里最重要的是OrElse(而不是OR),因為否則equasion的第二部分仍然給出NullReferenceException。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM