我在使用Visual Basic项目中的一段示例代码时遇到了问题。Visual Basic初学者错误
这是样板:
Dim dataRow As DataRow
dataRow = dataSet.Tables(0).NewRow()
我对样品的第二行得到一个NullReferenceException
当我运行它。
任何帮助非常感谢!
我在使用Visual Basic项目中的一段示例代码时遇到了问题。Visual Basic初学者错误
这是样板:
Dim dataRow As DataRow
dataRow = dataSet.Tables(0).NewRow()
我对样品的第二行得到一个NullReferenceException
当我运行它。
任何帮助非常感谢!
最可能的解释是索引0处没有表。也可能是数据集本身为空。
不确定代码的目的是什么,但是从它的外观来看,您试图向数据集添加新行?如果是这种情况,您需要声明一个新的数据行并将其添加到数据集中。或者,您应该可以向数据集添加一行,然后将数据行设置为新的行索引。
DataSet是DataTables的集合。我猜测DataTable引用尚未建立,并没有指向DataTable对象。检查DataTable引用是否为null(VB.NET中为Nothing),如果是,则创建一个新的DataTable对象并向其中添加一些列。然后,您将能够添加一个新行,因为DataTable引用将指向可添加行的DataTable对象:
If IsNothing(dataset) = True Then
dataset = New DataSet
dataset.Tables.Add("Table1")
End If
If IsNothing(dataSet.Tables(0)) = True Then
dataSet.Tables(0) = New DataTable
dataSet.Tables(0).Columns.Add("FirstName", GetType(String))
dataSet.Tables(0).Columns.Add("Surname", GetType(String))
dataSet.Tables(0).Columns.Add("DateOfBirth", GetType(DateTime))
End If
Dim dataRow As DataRow = dataSet.Tables(0).NewRow
dataRow.Item("FirstName") = "John"
dataRow.Item("Surname") = "Smith"
dataRow.Item("DateOfBirth") = #11/30/1998#
dataSet.Tables(0).Rows.Add(dataRow)
请发布您正在使用的查询,该帖子不够清晰找到错误 – 2014-11-05 04:26:36
该查询可能正在返回空结果集。检查数据表中是否存在任何行? – 2014-11-05 04:37:20
可能重复的[什么是NullReferenceException,我该如何解决它?](http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix-it) – Plutonix 2014-11-05 12:21:01