asp.net - 使用 DataSet 从 DataRow 中提取数据
问题描述
示例 1 在价格为空值时引发异常,示例 2 显示空值。这两种从 DataRow 中提取数据的方式有何不同?
Using ta As New DataSet1TableAdapters.titlesTableAdapter
Dim table As New DataSet1.titlesDataTable
Dim row As DataSet1.titlesRow
table = ta.GetData
For Each row In table
'Example 1
'Throws an exception with nulls
Response.Write(row.price & "<br>")
'Example 2
'Displays Nulls
Response.Write(row("price") & "<br>")
Next
End Using
解决方案
当您将空值与字符串连接时,您会得到空值。最好做类似的事情
Using ta As New DataSet1TableAdapters.titlesTableAdapter
Dim table As New DataSet1.titlesDataTable
Dim row As DataSet1.titlesRow
table = ta.GetData
For Each row In table
if (row("price") is Nothing) Then
Response.Write(row("price") & "<br>")
else
Response.Write( "<br>")
End If
Next
End Using
或者一些较短的手版本。我猜第一个例子会产生一个异常,因为它在 row.price 上隐式调用 ToString() 并且因为它是空的,所以它给出了一个异常。