2017-04-24 3 views
0

私はdatagridviews両方のデータを表示している(それぞれ1と2のグループを示しています)、基本的にそれらの両方がパーツとスロット番号といくつかの他のビットを表示しています、パーツ番号とスロットは、最初のグリッドビューには現在のパーツとスロット番号が表示され、2番目のグリッドビューには次のグループが表示されます(パーツ番号とスロット)。グループ間に共通点があるので、スロット1の例1111-1111が1番目と2番目のgridviewに表示されています - 私が試してやる必要があるのは、同じ行の2番目のgridviewの背景を緑色にすることです最初のものですが、それが存在しなければ、赤色の列を着色します。Datagridviews vb.netを比較する

すべての正しいデータが表示されています。緑の類似点と欠けている部分を2番目のグリッドビューに表示する必要があります。

私はGoogleを使ってみたことがありますが、実際に働いていますが、女の子が助けてくれることを願っています。

以下は、datagridviewsを設定するためのほとんどのコードです。

connect() 

    If combo_line.Text = "All" Then 
     cmd.CommandText = "SELECT v_machine, v_part, v_feedertype, v_slot, v_track FROM [sql_valor_groups] ORDER BY v_machine ASC" 
    Else 
     If combo_machine.Text = "All" Then 
      cmd.CommandText = "SELECT v_machine, v_part, v_feedertype, v_slot, v_track FROM [sql_valor_groups] WHERE v_line = '" & combo_line.Text & "' AND v_group = '" & combo_group.Text & "' ORDER BY v_machine ASC" 
      cmd2.CommandText = "SELECT v_machine, v_part, v_feedertype, v_slot, v_track FROM [sql_valor_groups] WHERE v_line = '" & combo_line.Text & "' AND v_group = '" & combo_group2.Text & "' ORDER BY v_machine ASC" 
     Else 
      cmd.CommandText = "SELECT v_machine, v_part, v_feedertype, v_slot, v_track FROM [sql_valor_groups] WHERE v_line = '" & combo_line.Text & "' AND v_machine = '" & combo_machine.Text & "' AND v_group = '" & combo_group.Text & "' ORDER BY v_machine ASC" 
      cmd2.CommandText = "SELECT v_machine, v_part, v_feedertype, v_slot, v_track FROM [sql_valor_groups] WHERE v_line = '" & combo_line.Text & "' AND v_machine = '" & combo_machine.Text & "' AND v_group = '" & combo_group2.Text & "' ORDER BY v_machine ASC" 
     End If 

    End If 


    Dim dataAdapter = New SqlDataAdapter(cmd.CommandText, con.ConnectionString) 
    Dim table As New DataTable() 
    table.Locale = System.Globalization.CultureInfo.InvariantCulture 
    dataAdapter.Fill(table) 
    Me.BindingSource.DataSource = table 

    DataGridView.DataSource = BindingSource 

    DataGridView.Columns(0).HeaderText = "Machine:" 
    DataGridView.Columns(1).HeaderText = "Part:" 
    DataGridView.Columns(2).HeaderText = "Feeder Type:" 
    DataGridView.Columns(3).HeaderText = "Slot:" 
    DataGridView.Columns(4).HeaderText = "Track:" 

    DataGridView.EnableHeadersVisualStyles = False 

    DataGridView.RowTemplate.MinimumHeight = 30 



    Dim dataAdapter2 = New SqlDataAdapter(cmd2.CommandText, con2.ConnectionString) 
    Dim table2 As New DataTable() 
    table2.Locale = System.Globalization.CultureInfo.InvariantCulture 
    dataAdapter2.Fill(table2) 
    Me.BindingSource2.DataSource = table2 

    DataGridView2.DataSource = BindingSource2 

    DataGridView2.Columns(0).HeaderText = "Machine:" 
    DataGridView2.Columns(1).HeaderText = "Part:" 
    DataGridView2.Columns(2).HeaderText = "Feeder Type:" 
    DataGridView2.Columns(3).HeaderText = "Slot:" 
    DataGridView2.Columns(4).HeaderText = "Track:" 

    DataGridView2.EnableHeadersVisualStyles = False 

    DataGridView2.RowTemplate.MinimumHeight = 30 

    disconnect() 

答えて

1

datagridview2

For i As Integer = 0 To DataGridView.Rows.Count() - 1 Step +1 
     Dim row As DataGridViewRow = DataGridView.Rows(i) 
     If DataGridView2.Rows.Count() > 0 Then 
      For j As Integer = 0 To DataGridView2.Rows.Count() - 1 Step +1 
       If row.Cells(1).Value.ToString() = DataGridView2.Rows(j).Cells(1).Value.ToString() And row.Cells(3).Value.ToString() = DataGridView2.Rows(j).Cells(3).Value.ToString() Then 
        DataGridView2.Rows(i).DefaultCellStyle.BackColor = Color.Green 
       Else 
        DataGridView2.Rows(i).DefaultCellStyle.BackColor = Color.Red 
       End If 
      Next 
     End If 
    Next 
でのDataGridViewと一致するから、あなたの行を反復処理
関連する問題