La función juntar

Con este post quiero agradecer a Alberto Salas su comentario y apoyo en relación al curso "Como hacer mi propio programa de decodificación DMR" expuesto en este sitio web y en el canal de YouTube.

En el mismo comentario me plantea un problema que ha tenido con el código de la función juntar por no poderla ver en su totalidad. A fin de solucionar este problema he decidido poner aquí ese código completo para que todo aquel que tenga ese mismo problema pueda solucionarlo.

Muchas gracias a todos por haber seguido este curso y por vuestro apoyo.


private void Juntar() { try { for (int i = 0; i < dataGridView1.RowCount - 1; i++) // Recorrre uno a uno todos los registros de la tabla dataGridView1 { string existe = ""; // existe es iguala nada string mirid = dataGridView1.Rows[i].Cells[2].Value.ToString(); // mirid es igual al valor de la columna 3 de la tabla dataGridView1 TbxTextoTemporal.Text = mirid; // El texto de TbxTextoTemporal es igaul al valor de mirid string lineatemp = TbxTextoTemporal.Text; // lineatemp es igual al texto de TbxTextoTemporal int cantfilas = dataGridView1.Rows.Count - 1; // Busca la última fila de la tabla dataGridView1 int cantfilas2 = dataGridView2.Rows.Count - 1; // Busca la última fila de la tabla dataGridView2 try { for (int y = 0; y < dataGridView2.RowCount - 1; y++) // Recorre uno a uno los registros de dataGridView2 { string mirid2 = dataGridView2.Rows[y].Cells[2].Value.ToString(); // Iguala las string a las columnas de la tabla dataGridView2 if (mirid2 == lineatemp) // Si mirid2 es igual a lineatemp { existe = mirid2; // existe es igual a mirid2 int micuenta = Convert.ToInt32(dataGridView2.Rows[y].Cells[0].Value) + Convert.ToInt32(dataGridView1.Rows[i].Cells[0].Value); // micuenta es igual al valor de la columna 0 de la tabla dataGridView2 más el valor de la columna 0 de la tabla dataGridView1 dataGridView2.Rows[y].Cells[0].Value = micuenta; // El valor de la columna 0 de la tabla dataGridView2 es igual a micuenta if (dataGridView1.Rows[i].Cells[1].Value.ToString() != "---") // Si el valor de la columna 1 de la tabla dataGridView1 es diferente a nada enotnces { if (dataGridView2.Rows[y].Cells[1].Value.ToString() != "---") // Si el valor de la columna 1 de la tabla dataGridView2 es diferente a nada { if (dataGridView2.Rows[y].Cells[1].Value.ToString().Contains(dataGridView1.Rows[i].Cells[1].Value.ToString())) { } // Si la columna 1 de la tabla dataGridView2 contiene el valor de la columna 1 de la tabla dataGridView1 else { dataGridView2.Rows[y].Cells[1].Value += " - " + dataGridView1.Rows[i].Cells[1].Value; // El valor de la columna 1 de la tabla dataGridView2 es igual a el mismo más el valor de la columna 1 de la tabla dataGridView1 } } else { dataGridView2.Rows[y].Cells[1].Value = dataGridView1.Rows[i].Cells[1].Value; // El valor de la columna 1 de la tabla dataGridView2 es igual al valor de la columna 1 de la tabla dataGridView1 } } string mrid3e = dataGridView2.Rows[y].Cells[2].Value.ToString(); // Iguala las string a las columnas de la tabla dataGridView2 if (dataGridView1.Rows[i].Cells[3].Value.ToString() != "-") // Si el valor de la columna 3 de la tabla dataGridView1 es diferente a nada enotnces { if (dataGridView2.Rows[y].Cells[3].Value.ToString() != "-") // Si el valor de la columna 3 de la tabla dataGridView2 es diferente a nada { if (dataGridView2.Rows[y].Cells[3].Value.ToString().Contains(dataGridView1.Rows[i].Cells[3].Value.ToString())) { } // Si la columna 3 de la tabla dataGridView2 contiene el valor de la columna 3 de la tabla dataGridView1 else { dataGridView2.Rows[y].Cells[3].Value += " - " + dataGridView1.Rows[i].Cells[3].Value; // El valor de la columna 3 de la tabla dataGridView2 es igual a el mismo más el valor de la columna 3 de la tabla dataGridView1 } } else { dataGridView2.Rows[y].Cells[3].Value = dataGridView1.Rows[i].Cells[3].Value; // El valor de la columna 3 de la tabla dataGridView2 es igual al valor de la columna 3 de la tabla dataGridView1 } } if (dataGridView1.Rows[i].Cells[4].Value.ToString() != "-") // Si el valor de la columna 4 de la tabla dataGridView1 es diferente a nada enotnces { if (dataGridView2.Rows[y].Cells[4].Value.ToString() != "-") // Si el valor de la columna 4 de la tabla dataGridView2 es diferente a nada { if (dataGridView2.Rows[y].Cells[4].Value.ToString().Contains(dataGridView1.Rows[i].Cells[4].Value.ToString())) { } // Si la columna 4 de la tabla dataGridView2 contiene el valor de la columna 4 de la tabla dataGridView1 else { dataGridView2.Rows[y].Cells[4].Value += " - " + dataGridView1.Rows[i].Cells[4].Value; // El valor de la columna 4 de la tabla dataGridView2 es igual a el mismo más el valor de la columna 4 de la tabla dataGridView1 } } else { dataGridView2.Rows[y].Cells[4].Value = dataGridView1.Rows[i].Cells[4].Value; // El valor de la columna 4 de la tabla dataGridView2 es igual al valor de la columna 4 de la tabla dataGridView1 } } if (dataGridView1.Rows[i].Cells[5].Value.ToString() != "-") // Si el valor de la columna 5 de la tabla dataGridView1 es diferente a nada enotnces { if (dataGridView2.Rows[y].Cells[5].Value.ToString() != "-") // Si el valor de la columna 5 de la tabla dataGridView2 es diferente a nada { if (dataGridView2.Rows[y].Cells[5].Value.ToString().Contains(dataGridView1.Rows[i].Cells[5].Value.ToString())) { } // Si la columna 5 de la tabla dataGridView2 contiene el valor de la columna 5 de la tabla dataGridView1 else { dataGridView2.Rows[y].Cells[5].Value += " - " + dataGridView1.Rows[i].Cells[5].Value; // El valor de la columna 5 de la tabla dataGridView2 es igual a el mismo más el valor de la columna 5 de la tabla dataGridView1 } } else { dataGridView2.Rows[y].Cells[5].Value = dataGridView1.Rows[i].Cells[5].Value; // El valor de la columna 5 de la tabla dataGridView2 es igual al valor de la columna 5 de la tabla dataGridView1 } } if (dataGridView1.Rows[i].Cells[6].Value.ToString() != "-") // Si el valor de la columna 6 de la tabla dataGridView1 es diferente a nada enotnces { if (dataGridView2.Rows[y].Cells[6].Value.ToString() != "-") // Si el valor de la columna 6 de la tabla dataGridView2 es diferente a nada { if (dataGridView2.Rows[y].Cells[6].Value.ToString().Contains(dataGridView1.Rows[i].Cells[6].Value.ToString())) { } // Si la columna 6 de la tabla dataGridView2 contiene el valor de la columna 6 de la tabla dataGridView1 else { dataGridView2.Rows[y].Cells[6].Value += " - " + dataGridView1.Rows[i].Cells[6].Value; // El valor de la columna 6 de la tabla dataGridView2 es igual a el mismo más el valor de la columna 6 de la tabla dataGridView1 } } else { dataGridView2.Rows[y].Cells[6].Value = dataGridView1.Rows[i].Cells[6].Value; // El valor de la columna 6 de la tabla dataGridView2 es igual al valor de la columna 6 de la tabla dataGridView1 } } if (dataGridView1.Rows[i].Cells[7].Value.ToString() != "-") // Si el valor de la columna 7 de la tabla dataGridView1 es diferente a nada enotnces { if (dataGridView2.Rows[y].Cells[7].Value.ToString() != "-") // Si el valor de la columna 7 de la tabla dataGridView2 es diferente a nada { if (dataGridView2.Rows[y].Cells[7].Value.ToString().Contains(dataGridView1.Rows[i].Cells[7].Value.ToString())) { } // Si la columna 7 de la tabla dataGridView2 contiene el valor de la columna 7 de la tabla dataGridView1 else { dataGridView2.Rows[y].Cells[7].Value += " - " + dataGridView1.Rows[i].Cells[7].Value; // El valor de la columna 7 de la tabla dataGridView2 es igual a el mismo más el valor de la columna 7 de la tabla dataGridView1 } } else { dataGridView2.Rows[y].Cells[7].Value = dataGridView1.Rows[i].Cells[7].Value; // El valor de la columna 7 de la tabla dataGridView2 es igual al valor de la columna 7 de la tabla dataGridView1 } } if (dataGridView1.Rows[i].Cells[8].Value.ToString() != "-") // Si el valor de la columna 8 de la tabla dataGridView1 es diferente a nada enotnces { if (dataGridView2.Rows[y].Cells[8].Value.ToString() != "-") // Si el valor de la columna 8 de la tabla dataGridView2 es diferente a nada { if (dataGridView2.Rows[y].Cells[8].Value.ToString().Contains(dataGridView1.Rows[i].Cells[8].Value.ToString())) { } // Si la columna 8 de la tabla dataGridView2 contiene el valor de la columna 8 de la tabla dataGridView1 else { dataGridView2.Rows[y].Cells[8].Value += " - " + dataGridView1.Rows[i].Cells[8].Value; // El valor de la columna 8 de la tabla dataGridView2 es igual a el mismo más el valor de la columna 8 de la tabla dataGridView1 } } else { dataGridView2.Rows[y].Cells[8].Value = dataGridView1.Rows[i].Cells[8].Value; // El valor de la columna 8 de la tabla dataGridView2 es igual al valor de la columna 8 de la tabla dataGridView1 } } if (dataGridView1.Rows[i].Cells[9].Value.ToString() != "-") // Si el valor de la columna 9 de la tabla dataGridView1 es diferente a nada enotnces { if (dataGridView2.Rows[y].Cells[9].Value.ToString() != "-") // Si el valor de la columna 9 de la tabla dataGridView2 es diferente a nada { if (dataGridView2.Rows[y].Cells[9].Value.ToString().Contains(dataGridView1.Rows[i].Cells[9].Value.ToString())) { } // Si la columna 9 de la tabla dataGridView2 contiene el valor de la columna 9 de la tabla dataGridView1 else { dataGridView2.Rows[y].Cells[9].Value += " - " + dataGridView1.Rows[i].Cells[9].Value; // El valor de la columna 9 de la tabla dataGridView2 es igual a el mismo más el valor de la columna 9 de la tabla dataGridView1 } } else { dataGridView2.Rows[y].Cells[9].Value = dataGridView1.Rows[i].Cells[9].Value; // El valor de la columna 9 de la tabla dataGridView2 es igual al valor de la columna 9 de la tabla dataGridView1 } } } } if (lineatemp != existe) { dataGridView2.Rows.Add(); dataGridView2[0, cantfilas2].Value = dataGridView1.Rows[i].Cells[0].Value; dataGridView2[1, cantfilas2].Value = dataGridView1.Rows[i].Cells[1].Value; dataGridView2[2, cantfilas2].Value = dataGridView1.Rows[i].Cells[2].Value; dataGridView2[3, cantfilas2].Value = dataGridView1.Rows[i].Cells[3].Value; dataGridView2[4, cantfilas2].Value = dataGridView1.Rows[i].Cells[4].Value; dataGridView2[5, cantfilas2].Value = dataGridView1.Rows[i].Cells[5].Value; dataGridView2[6, cantfilas2].Value = dataGridView1.Rows[i].Cells[6].Value; dataGridView2[7, cantfilas2].Value = dataGridView1.Rows[i].Cells[7].Value; dataGridView2[8, cantfilas2].Value = dataGridView1.Rows[i].Cells[8].Value; dataGridView2[9, cantfilas2].Value = dataGridView1.Rows[i].Cells[9].Value; } } catch { } } } catch { } int cantfilas3 = dataGridView2.Rows.Count - 1; // Busca la última fila de la tabla dataGridView2 try { for (int h = 0; h < dataGridView2.RowCount - 1; h++) { for (int j = 0; j < dataGridView2.ColumnCount - 1; j++) { if (dataGridView2.Rows[h].Cells[j].Value.ToString() == "---") { dataGridView2.Rows[h].Cells[j].Value = " "; } } } } catch { } } 

Sustituye la función juntar de tu proyecto por este otro código fuente.