none
Foreach em dois datagridview . RRS feed

  • Pergunta

  • Fala pessoal, mais uma vez venho com um problema. 

    Possuo dois datagrids que recebem dados distintos, estou tentando inserir somente os dados que preciso em um datatable, mas para isso preciso percorrer os dois datagrids.  o problema é que ele esta multiplicando os registros que recebo no datatable 3x. alguem pode me dar uma luz no que estou errando. 

    percorro o datagrid1 e carrego o id e tipo (Automatico / N/A / Unico) ai precorro o 2 datagrid e verifico se o id é igual se sim add as linhas no datatable. Havia colocado tudo em um unico foreach do datagrid1 e no if tipo verificava se era N/a automatico ou unico mas obtive o mesmo resultado de linhas multiolicadas. 

    Att, Fabio.

    Obs. não coloquei o trecho do foreach verificando se era unico pro cod não ficar muito extenso.

     foreach (DataGridViewRow item in dataGridView1.Rows)
                {
                    int idsu = Convert.ToInt32(item.Cells[0].Value.ToString());
                    string tipo = item.Cells[7].Value.ToString();
    
                    if (tipo == "Automático")
                    {
                        foreach (DataGridViewRow dgUS in dgNovosSeriais.Rows)
                        {
                            int SUPID = Convert.ToInt32(dgUS.Cells[2].Value.ToString());
                            if (SUPID == idsu )
                            {
                                DataRow dr1 = DtNovo.NewRow();
                                dr1["idsup11"] = (item.Cells[8].Value.ToString());
                                dr1["PN1"] = (item.Cells[1].Value.ToString());
                                dr1["VrU11"] = (item.Cells[2].Value.ToString());
                                dr1["VdU11"] = (item.Cells[3].Value.ToString());
                                dr1["VeU11"] = (item.Cells[4].Value.ToString());
                                dr1["DoDia11"] = (item.Cells[5].Value.ToString());
                                dr1["EuDia11"] = (item.Cells[6].Value.ToString());
                                dr1["Tserial1"] = (dgUS.Cells[1].Value.ToString().Trim());
                                dr1["TserialTipo"] = (item.Cells[7].Value.ToString().Trim());  // 
                                dr1["classF1"] = (item.Cells[9].Value.ToString().Trim());
                                dr1["datEntra"] = (data9);
                                DtNovo.Rows.Add(dr1);
                            }
                        }
                    }
                }
    
                foreach (DataGridViewRow item in dataGridView1.Rows)
                {
                    int idsu = Convert.ToInt32(item.Cells[0].Value.ToString());
                    string tipo = item.Cells[7].Value.ToString();
    
                    if (tipo == "N/A")
                    {
                        foreach (DataGridViewRow dgUS in dgNovosSeriais.Rows)
                        {
                            int SUPID = Convert.ToInt32(dgUS.Cells[2].Value.ToString());
                            if (SUPID == idsu)
                            {
                                DataRow dr1 = DtNovo.NewRow();
                                dr1["idsup11"] = (item.Cells[8].Value.ToString());
                                dr1["Pn1"] = (item.Cells[1].Value.ToString());
                                dr1["VrU11"] = (item.Cells[2].Value.ToString());
                                dr1["VdU11"] = (item.Cells[3].Value.ToString());
                                dr1["VeU11"] = (item.Cells[4].Value.ToString());
                                dr1["DoDia11"] = (item.Cells[5].Value.ToString());
                                dr1["EuDia11"] = (item.Cells[6].Value.ToString());
                                dr1["Tserial1"] = (na);
                                dr1["TserialTipo"] = (item.Cells[7].Value.ToString().Trim());  // 
                                dr1["classF1"] = (item.Cells[9].Value.ToString().Trim());
                                dr1["datEntra"] = (data9);
                                DtNovo.Rows.Add(dr1);
                            }
                        }
                    }
                }

    sábado, 30 de abril de 2016 14:31

Respostas