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

タイプ 'string' のエラー コード値を '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 に答える