首页 > 解决方案 > 使用 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

标签: asp.net.netwebformsdataset

解决方案


当您将空值与字符串连接时,您会得到空值。最好做类似的事情

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() 并且因为它是空的,所以它给出了一个异常。


推荐阅读