Vb.net 获取datagridview单元格中的值时出错
我有一个Vb.net 获取datagridview单元格中的值时出错,vb.net,winforms,datagridview,nullreferenceexception,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 如果不重命名列,则此代码可以正常工作,但如果重命名列,则会出现错误。如果列的
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)
单元格的访问将引发
NullReferenceException
不为空,否则访问dvJOBranch.Rows(0).Cells.Item(2)
将引发Item(2).Value
NullReferenceException
不为null,否则调用dvJOBranch.Rows(0).Cells.Item(2).Value
方法将抛出.ToString()
NullReferenceException
If dvJOBranch.Rows(0).Cells.Item(2).Value IsNot Nothing Then
(...)
End If
另请参见如果列的索引没有更改,您可以通过其索引而不是其名称来访问它:
dvJOBranch.Rows(0).Cells.Item(2).Value.ToString 'third column
请注意,对象引用未设置为对象的实例意味着您有一个
NullReferenceException
上面的代码行假定:
不为空,否则对dvJOBranch.Rows(0)
单元格的访问将引发
NullReferenceException
不为空,否则访问dvJOBranch.Rows(0).Cells.Item(2)
将引发Item(2).Value
NullReferenceException
不为null,否则调用dvJOBranch.Rows(0).Cells.Item(2).Value
方法将抛出.ToString()
NullReferenceException
If dvJOBranch.Rows(0).Cells.Item(2).Value IsNot Nothing Then
(...)
End If
另请参见尝试以下操作:
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),因为除此之外,等式的第二部分仍然给出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),因为否则等式的第二部分仍然会给出NullReferenceException。啊,好的,先生,我现在知道了,我已经将datagridview的值设置为null,谢谢先生:)啊,好的,先生,我现在知道了,我已经将datagridview的值设置为null,谢谢先生:)