tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルデータセットをRows(i)でとると落ちる
記事No5235
投稿日: 2007/03/30(Fri) 09:17
投稿者rika
VB2005です。

データセットにデータを格納し、各行のチェックをかけています。
5行のデータをCSV形式のファイルから取込み、1行目と2行目、1行目と3行目、1行目と4行目、1行目と5行目を比べ、次に、2行目と3行目、2行目と4行目〜・・・というように
総当りでデータを比べる、ということをしています。

そこで、5行格納されているデータセットではじめに比べるデータと比べられるデータを配列でとり、下記のように設定しました。

For i = 0 To ds.摘要範囲.Rows.Count - 1
Dim fstData As dtsTankaTorikomi.摘要範囲Row = ds.摘要範囲.Rows(i)
      For j = i + 1 To ds.摘要範囲.Rows.Count
      Dim NxtData As dtsTankaTorikomi.摘要範囲Row = ds.摘要範囲.Rows(j)
      lngI = lngI + 1
   ★fstDataとNxtDataを比べる処理
      ''表示データ作成(★)
            Call setErrorMsg(lngI, NxtData.CSV行NO, "E9012")
            Continue For
      Next j
Next i

なぜかRows(1)のにきたときに落ちてしまいます。
なぜでしょうか??

[ツリー表示へ]
タイトルRe: データセットをRows(i)でとると落ちる
記事No5236
投稿日: 2007/03/30(Fri) 10:18
投稿者rika
追記です。

どうやら上書きされてしまうらしく、
2行目をNEWで行追加しても追加されず1行目に
上書きされてしまうみたいです。。

原因がわかりません。

[ツリー表示へ]
タイトルRe^2: データセットをRows(i)でとると落ちる
記事No5237
投稿日: 2007/03/30(Fri) 10:58
投稿者なおこ(・∀・)
お世話になります。

> どうやら上書きされてしまうらしく、
> 2行目をNEWで行追加しても追加されず1行目に
> 上書きされてしまうみたいです。。
??
質問の意図をちゃんと把握できているか自信がありませんが、
とりあえず
> 総当りでデータを比べる
のはこういう感じでできるんじゃないかなぁと思います。

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim testTable As DataTable = New DataTable("てすと")
    With testTable
        .Columns.Add("Column1", GetType(String))

        .Rows.Add(New String() {"a"})
        .Rows.Add(New String() {"b"})
        .Rows.Add(New String() {"c"})
        .Rows.Add(New String() {"d"})
        .Rows.Add(New String() {"e"})
    End With

    For Each row As DataRow In testTable.Rows
        For Each compareRow As DataRow In testTable.Rows
            If Not compareRow Is row Then
                ' 比較
                Console.WriteLine(Convert.ToString(row(0)) & "と" & _
                Convert.ToString(compareRow(0)) & "の比較")
            End If
        Next
    Next
End Sub

[ツリー表示へ]