In c# ho un Form4 con una datagridview1 con 3 colonne e 4005 righe con dei numeri. Nel form4 ho anche un button1 che quando clicco sopra mi deve creare una quarta colonna nella datagridview1. Nella quarta colonna mi deve contare quante volte è presente il numero nella colonna 2 insieme al numero della colonna 3 e viceversa, nella datagridview1 del Form1, colonna da 2 a 6.
Il mio problema è, e che non conta, nella colonna 4 del Form4, datagridview1 esce tutti zero. Come risolvo il problema?
private void Button1_Click(object sender, EventArgs e)
{
// Aggiungi la quarta colonna
DataGridViewTextBoxColumn newColumn = new DataGridViewTextBoxColumn();
newColumn.Name = "Conteggio";
newColumn.HeaderText = "Conteggio";
dataGridView1.Columns.Add(newColumn);
// Ottieni il DataGridView dal Form1
Form1 form1 = (Form1)Application.OpenForms["Form1"];
var dataGridView2 = form1.dataGridView1;
// Conta le occorrenze
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
var valCol2 = dataGridView1.Rows[i].Cells[1].Value; // Colonna 2
var valCol3 = dataGridView1.Rows[i].Cells[2].Value; // Colonna 3
// Esegui il conteggio
int count = 0;
foreach (DataGridViewRow row in dataGridView2.Rows)
{
if (row.Cells[1].Value != null && row.Cells[2].Value != null)
{
if (row.Cells[1].Value.Equals(valCol2) && row.Cells[2].Value.Equals(valCol3) ||
row.Cells[1].Value.Equals(valCol3) && row.Cells[2].Value.Equals(valCol2))
{
count++;
}
}
}
// Assegna il conteggio nella nuova colonna
dataGridView1.Rows[i].Cells[3].Value = count; // Colonna 4 (indice 3)
}
}