Vb.net 用于显示数据或不显示数据的简单if语句

Vb.net 用于显示数据或不显示数据的简单if语句,vb.net,if-statement,Vb.net,If Statement,我在for循环中有一个数组,没有“数据”,并给我一条错误消息,说1990年找不到这个。我正在寻找一个if语句,如果有一行名为“data”,我可以使用它,如果没有,则将图表保留为黑色,不显示任何数据 代码是: Dim array1 As New ArrayList Dim array2 As New ArrayList Dim array3 As New ArrayList For Each row In name1 array.Add(row(

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

代码是:

    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
我的数据显示为信息、姓名、地址。数据没有显示,这是说表中没有数据。 如何将其放入if语句中,然后显示未显示任何数据

使用vb.net

错误


如果Year1.包含(“数据”),那么根据您提供的有限信息,我在这里做了几个假设:

  • 是一个
    数据行
  • 存在一个
    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
因此,您的代码可能如下所示:

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
查询应返回列的静态列表。

对于1989年的每一行,您不能用
中的数字命名变量,因此您的代码将无法编译。是的,将其更改为name,您是否知道if语句如果没有名为
“data”的项
在表中,如果您不想使用条件来检查它,您只想将其删除。根据术语,我假设
是直接从数据库中提取的
数据行
?如果没有名为
“data”
的列,那么就没有这样的列。条件的计算结果总是
false
,这是多余的。@david数据来自数据库,有时会显示出来。。这就是为什么我需要if语句不使用
ArrayList
,它已被弃用。改为使用通用容器。如果('data')出现错误,则表示“string”类型的值无法转换为“System.data.Datarow”@al123:在哪一行?显示更新的代码并指出错误发生的位置。我再强调也不为过,我们无法检查您没有向我们展示的代码/错误/等等。我们实际上不在你的电脑里。@al123:基于此,什么是
Year1
?这是数据表吗?如果是这样,您需要检查该对象上的
集合,如我的回答中所述。第一年应该是该列,但我将其死记硬背为name4lol,很抱歉造成混淆david,我知道您在说什么了。谢谢您的帮助和时间。