我在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
我的数据显示的是信息,名称和地址。数据未显示,表示表中没有数据。 我如何将它放入if语句中,然后显示没有数据显示..
使用vb.net
错误
If Year1.Contains("data") Then <------ error on data
For Each row In name4
array3.Add(row("data"))
Next row
End If
“string”类型的错误代码值无法转换为“System.data.Datarow”
答案 0 :(得分: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
查询应返回静态列列表。