none
Comparar 2 columnas datagridview RRS feed

  • Pregunta

  • Hola, quería ver si podrían ayudarme, necesito hacer una comparación de los datos de una columna en especifico de 2 datagridview y en un tercer datagridview poner todos los que se repiten junto con los datos de las demas columnas del primer datagridview, los valores que tienen los primeros datagridview son importados de excel, de la siguiente manera.

    private void btnSelect1_Click(object sender, EventArgs e)
            {
                try
                {
                    OpenFileDialog openfiledialog1 = new OpenFileDialog();
                    openfiledialog1.Filter = "Excel Files | *.xlsx; *.xls; *.xlsm";

                    if (openfiledialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                    {
                        this.tBox1.Text = openfiledialog1.FileName;
                    }

                    string constr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + tBox1.Text + ";Extended Properties = \"Excel 12.0; HDR=YES;\" ; ";
                    OleDbConnection con = new OleDbConnection(constr);
                    con.Open();

                    dropdown_sheet1.DataSource = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
                    dropdown_sheet1.DisplayMember = "TABLE_NAME";
                    dropdown_sheet1.ValueMember = "TABLE_NAME";
                }

                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }

            private void btnLoad1_Click(object sender, EventArgs e)
            {
                try
                {
                    string constr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + tBox1.Text + ";Extended Properties = \"Excel 12.0; HDR=YES;\" ; ";
                    OleDbConnection con = new OleDbConnection(constr);
                    OleDbDataAdapter sda = new OleDbDataAdapter("Select * From [" + dropdown_sheet1.SelectedValue + "]", con);
                    DataTable dt1 = new DataTable();
                    sda.Fill(dt1);

                    foreach (DataRow row in dt1.Rows)
                    {
                        dataGridView1.DataSource = dt1;
                    }
                }

                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }


    • Editado Fatesbell jueves, 2 de mayo de 2019 3:55
    jueves, 2 de mayo de 2019 0:52

Respuestas

  • hola

    Esto

    foreach (DataRow row in dt1.Rows)
    {
           dataGridView1.DataSource = dt1;
    }

    no aplica, no puedes asignar el DataSource mientras iteras las rows, no se que quieres lograr con ese codigo pero no funciona de esa forma

    Solo quita el foreach esta de mas

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 2 de mayo de 2019 17:39

Todas las respuestas