0

我在 for 循环中有一个数组,没有“数据”,并给我一条错误消息,说在 1990 年找不到这个。我正在寻找一个 if 语句,如果没有名为“数据”的行,我可以在其中使用它然后将图表保留为黑色,不显示任何数据。

代码是:

    Dim array1 As New ArrayList
    Dim array2 As New ArrayList
    Dim array3 As New ArrayList


    For Each row In name1
        array.Add(row("info"))
    Next row



    For Each row In name2
        array1.Add(row("name"))

    Next row

    For Each row In name3
        array2.Add(row("address"))

    Next row


    For Each row In name4
        array3.Add(row("data"))
    Next row

我的数据显示为信息、名称、adderss。数据未显示,表示表中没有数据。我怎么能把它放到一个 if 语句中,然后显示没有数据被呈现..

使用 vb.net

错误

    If Year1.Contains("data") Then   <------ error on data
        For Each row In name4
            array3.Add(row("data"))
        Next row
    End If

“字符串”类型的错误代码值无法转换为“System.data.Datarow”

4

1 回答 1

2

根据您提供的有限信息,我在这里做出几个假设

  • row是一个DataRow
  • 存在一个DataTable(我将称之为table
  • 有时存在一个名为的列data,有时不存在。(也就是说,您的架构不是静态的。)

您可以检查其集合中DataTable对象上是否存在列。Columns像这样的东西:

If table.Columns.Contains("data") Then
    ' use the column
End If

所以你的代码可能看起来像这样:

If table.Columns.Contains("data") Then
    For Each row In name4
        array3.Add(row("data"))
    Next row
End If

拥有非静态数据库模式绝对是非正统的。至少这类事情应该由您的数据库代码而不是应用程序逻辑来处理。SELECT查询应该返回列的静态列表。

于 2013-07-03T13:09:30.403 回答