获取datagridview单元格错误的值

时间:2013-09-01 23:43:11

标签: vb.net winforms datagridview nullreferenceexception

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

流程首先用户将选择品牌(CHL和XRA),如果用户选择XRA,列名称将重命名为 - ,1L,2L,3L,4L。

这里的问题是,每当我从单元格中获取列名重命名的值时,我就会遇到这种错误:对象引用未设置为对象的实例。

这是我从单元格中获取值的示例代码:

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

如果不重命名该列,此代码完全有效,但如果我重命名该列,则会出错。

1 个答案:

答案 0 :(得分:1)

如果列的索引没有更改,您可以通过索引而不是其名称来访问它:

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

请注意,对象引用未设置为对象的实例表示您拥有NullReferenceException

上面的代码行假设:

  • dvJOBranch.Rows(0) 不为空,否则访问Cell会抛出NullReferenceException
  • dvJOBranch.Rows(0).Cells.Item(2) 不为空,否则访问Item(2).Value会抛出NullReferenceException
  • dvJOBranch.Rows(0).Cells.Item(2).Value 不为空,否则调用.ToString()方法会抛出NullReferenceException

您需要进行适当的测试以处理空值。

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

另见What is a NullReferenceException, and how do I fix it?