0

vb net の datagridview の列を反復処理し、値をテキスト ボックスに渡しています。Cell(4) にある電子メールを除外できるようにする必要があるため、1 人の顧客に対して電子メールが重複することはありません。

データセットを使用してこれを行う方法がわかりません。

EmailTableAdapter.Fill(Me.EmailDataset.Email)

  Dim r As String = String.Empty
        For i As Integer = 0 To Me.EmailDataGridView.RowCount - 1
            r = r & EmailDataGridView.Rows(i).Cells(7).Value.ToString & "  -  " & EmailDataGridView.Rows(i).Cells(4).Value.ToString & vbNewLine
        Next
        TextBox2.Text = (r)
4

1 に答える 1

0

Cells(4) で重複する値を持つ行を除外する 1 つの方法は、グリッド行を反復処理し、Cells(4) 値をキーとして使用して項目を Dictionary に詰め込み、Dictionary を反復処理して "r" を構築することです。ストリング。このようなソリューションは次のようになります。

EmailTableAdapter.Fill(Me.EmailDataset.Email)

Dim EmailDict As New Dictionary(Of String, String)
For i As Integer = 0 To Me.EmailDataGridView.RowCount - 1
    If Not EmailDict.ContainsKey(EmailDataGridView.Rows(i).Cells(4).Value.ToString) Then
        EmailDict.Add(EmailDataGridView.Rows(i).Cells(4).Value.ToString, EmailDataGridView.Rows(i).Cells(7).Value.ToString)
    End If
Next

Dim EmailPair As KeyValuePair(Of String, String)
Dim r As String = String.Empty
For Each EmailPair In EmailDict
    r &= EmailPair.Value & "  -  " & EmailPair.Key & vbNewLine
Next

TextBox2.Text = (r)
于 2013-03-09T22:49:02.153 に答える