2014-11-05 167 views
0

我在使用Visual Basic项目中的一段示例代码时遇到了问题。Visual Basic初学者错误

这是样板:

Dim dataRow As DataRow 
dataRow = dataSet.Tables(0).NewRow() 

我对样品的第二行得到一个NullReferenceException当我运行它。

任何帮助非常感谢!

+0

请发布您正在使用的查询,该帖子不够清晰找到错误 – 2014-11-05 04:26:36

+0

该查询可能正在返回空结果集。检查数据表中是否存在任何行? – 2014-11-05 04:37:20

+0

可能重复的[什么是NullReferenceException,我该如何解决它?](http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix-it) – Plutonix 2014-11-05 12:21:01

回答

1

最可能的解释是索引0处没有表。也可能是数据集本身为空。

0

不确定代码的目的是什么,但是从它的外观来看,您试图向数据集添加新行?如果是这种情况,您需要声明一个新的数据行并将其添加到数据集中。或者,您应该可以向数据集添加一行,然后将数据行设置为新的行索引。

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)