none
error: esta fila ya pertenece a otra tabla RRS feed

  • Pregunta

  • Hola, originalmente tengo un objeto Datatable cargado con datos, el cual filtro con el método Select(Filtro), lo cual me genera una matriz de Datarows()  que coinciden con los criterios del filtro, hasta aqui vamos bien. Ahora quiero agregar cada una de esas filas filtradas a un Datatable (con la misma estructura de mi Datatatable original, pero me dá el error: error esta fila ya pertenece a otra tabla. aquí el código que tengo:

     private void button1_Click_2(object sender, EventArgs e)
            {

                DataRow DT =funct.SpreadSheet1(); //Aqui lleno mi Datatable

                String expression = "Norte = 857404";
                String sortOrder = "Norte ASC";

                DataRow[] Filtered;
                Filtered = DT.Select(expression, sortOrder); //Filtro mi Datatable original

                DataTable DT2 = DT.Clone(); //hago una copia de mi Datatable original

                foreach (DataRow dr in Filtered) //recorro las filas filtradas
                {
                    DT2.Rows.Add(dr); //aquí me da error
                }

                dataGridView1.DataSource = DT2;
            }



    • Editado softlight miércoles, 3 de abril de 2019 20:56
    miércoles, 3 de abril de 2019 20:52

Respuestas

  • Puedes usar el método ImportRow si tienen el mismo esquema.

              foreach (DataRow dr in Filtered) //recorro las filas filtradas
                {
                    //DT2.Rows.Add(dr); //aquí me da error
                    DT2.ImportRow(dr);
                }

    • Marcado como respuesta softlight jueves, 4 de abril de 2019 15:03
    miércoles, 3 de abril de 2019 21:07
  • Hola, podrías probar

    DataTable DT2 = DT.Clone(); 
    foreach (DataRow dr in Filtered) 
    { 
        DataRow myRow = DT2.NewRow(); 
        myRow["columna1"] = dr["columna1"];
        myRow["columna2"] = dr["columna2"];
    	................
        DT2.Rows.Add(myRow); 
    } 
    Esta fila ya pertenece a otro error de tabla al intentar agregar filas?


    Votar y marcar respuestas es agradecer.
    Saludos.
    Lima-Perú


    • Editado Augusto1982 jueves, 4 de abril de 2019 3:54
    • Marcado como respuesta softlight jueves, 4 de abril de 2019 15:04
    jueves, 4 de abril de 2019 3:53

Todas las respuestas

  • Puedes usar el método ImportRow si tienen el mismo esquema.

              foreach (DataRow dr in Filtered) //recorro las filas filtradas
                {
                    //DT2.Rows.Add(dr); //aquí me da error
                    DT2.ImportRow(dr);
                }

    • Marcado como respuesta softlight jueves, 4 de abril de 2019 15:03
    miércoles, 3 de abril de 2019 21:07
  • Hola, podrías probar

    DataTable DT2 = DT.Clone(); 
    foreach (DataRow dr in Filtered) 
    { 
        DataRow myRow = DT2.NewRow(); 
        myRow["columna1"] = dr["columna1"];
        myRow["columna2"] = dr["columna2"];
    	................
        DT2.Rows.Add(myRow); 
    } 
    Esta fila ya pertenece a otro error de tabla al intentar agregar filas?


    Votar y marcar respuestas es agradecer.
    Saludos.
    Lima-Perú


    • Editado Augusto1982 jueves, 4 de abril de 2019 3:54
    • Marcado como respuesta softlight jueves, 4 de abril de 2019 15:04
    jueves, 4 de abril de 2019 3:53