我在使用Visual Basic项目中的一段示例代码时出现问题。
这是样本:
Dim dataRow As DataRow
dataRow = dataSet.Tables(0).NewRow()
当我运行它时,我在样本的第二行得到NullReferenceException
。
非常感谢任何帮助!!!
答案 0 :(得分:1)
最可能的解释是索引0处没有表。也可能是datSet本身为空。
答案 1 :(得分:0)
不确定代码的意图是什么,但从它的外观来看,你试图在数据集中添加一个新行?如果是这种情况,则需要声明一个新数据行并将其添加到数据集中。或者,您应该能够向数据集添加一行,然后将datarow设置为新的行索引。
答案 2 :(得分: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)