2014-11-05 133 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)