none
como añadir un registro a una tabla desde una lista con campo de valor en comun RRS feed

  • Pregunta

  • buenas noches , tengo la siguiente lista : 

    id claveepi cantidad
    1 102 1
    5 102 1
    7 102 1
    8 102 1
    18 102 1
    1 29 1
    3 29 1
    8 29 1
    10 29 1
    16 29 1
    7 73 1
    22 73 1
    13 82 1
    13 82 1
    1 83 1
    7 83 1
    14 83 1
    7 86 1
    8 86 1

    la cual quiero pasar a un registro de tabla llamada edade la cual uso con entity framework 

    este es mi codigo pero no logo hacerlo y teoricamente se agrupan los elementos de la lista por medio de claveepi para que quedaran asi en la tabla edade :


    claveepi id 1 id 2 id 3 id 4 id 5 id 6 id 7 id 8 id 9 id 10 id 11 id 12 id 13 id 14 id 15 id 16 id 17 id 18 id 19 id 20 id 21 id 22 id 23 id 24
    102 1       1   1 1                   1            
    29 1   1         1   1           1                
    73             1                             1    
    82                         1                      
    83 1           1                                  
    86             1 1                                

    donde claveepi es el primer campo, id es la casilla de posición [id1..id24] y cantidad es el valor asignado ( todos son 1)

    este es mi codigo :


            protected void guardarRegistro(List<edade> Lista)
            {

                string centinela = "";
                string claveepi = "";
                List<edade> registros = new List<edade>();
                edade rec = new edade();

                foreach (edade elregistro in Lista)
                {
                   
                    claveepi = elregistro.claveepi;
                    int id = elregistro.id;
                    if (claveepi != centinela)
                    {
                        
                        db.edades.Add(rec);
                        db.SaveChanges();
                        switch (id)
                            {
                           case 1 :
                             rec.menos1m    = elregistro.menos1m;
                            break;
                            case 2:
                               rec.menos1f = elregistro.menos1f;
                            break;
                            case 3:
                                rec.C1a4m = elregistro.C1a4m;
                            break;
                            case 4:
                                rec.C1a4f = elregistro.C1a4f;
                            break;
                            case 5:
                                rec.C5a9m = elregistro.C5a9m;
                            break;
                            case 6:
                                rec.C50a59f = elregistro.C50a59f;
                            break;
                            case 7:
                                rec.C10a14m = elregistro.C10a14m;
                            break;
                            case 8:
                                rec.C10a14f = elregistro.C10a14f;
                            break;
                            case 9:
                                rec.C15a19m = elregistro.C15a19m;
                            break;
                            case 10:
                                rec.C15a19f = elregistro.C15a19f;
                            break;
                            case 11:
                                rec.C20a24m = elregistro.C20a24m;
                            break;
                            case 12:
                                rec.C20a24f = elregistro.C20a24f;
                            break;
                            case 13:
                                rec.C25a44m = elregistro.C25a44m;
                            break;
                            case 14:
                                rec.C25a44f = elregistro.C25a44f;
                            break;
                            case 15:
                               rec.C45a49m = elregistro.C45a49f;
                            break;
                            case 16:
                               rec.C45a49f = elregistro.C45a49f;
                            break;
                            case 17:
                               rec.C50a59m = elregistro.C50a59m;
                            break;
                            case 18:
                                rec.C50a59f = elregistro.C50a59f;
                            break;
                            case 19:
                                rec.C60a64m = elregistro.C60a64m;
                            break;
                            case 20:
                                rec.C60a64f = elregistro.C60a64f;
                            break;
                            case 21:
                                rec.C65a69m = elregistro.C65a69m;
                            break;
                            case 22:
                                rec.C65a69f = elregistro.C65a69f;
                            break;
                            case 23:
                                rec.C70ymasm = elregistro.C70ymasm;
                            break;
                            case 24:
                                rec.C70ymasf = elregistro.C70ymasf;
                            break;

                            default:
                               
                                break;
                        }
                        
                       
                       
                    }else
                    {
                        switch (id)
                        {
                            case 1:
                                rec.menos1m = elregistro.menos1m;
                                break;
                            case 2:
                                rec.menos1f = elregistro.menos1f;
                                break;
                            case 3:
                                rec.C1a4m = elregistro.C1a4m;
                                break;
                            case 4:
                                rec.C1a4f = elregistro.C1a4f;
                                break;
                            case 5:
                                rec.C5a9m = elregistro.C5a9m;
                                break;
                            case 6:
                                rec.C50a59f = elregistro.C50a59f;
                                break;
                            case 7:
                                rec.C10a14m = elregistro.C10a14m;
                                break;
                            case 8:
                                rec.C10a14f = elregistro.C10a14f;
                                break;
                            case 9:
                                rec.C15a19m = elregistro.C15a19m;
                                break;
                            case 10:
                                rec.C15a19f = elregistro.C15a19f;
                                break;
                            case 11:
                                rec.C20a24m = elregistro.C20a24m;
                                break;
                            case 12:
                                rec.C20a24f = elregistro.C20a24f;
                                break;
                            case 13:
                                rec.C25a44m = elregistro.C25a44m;
                                break;
                            case 14:
                                rec.C25a44f = elregistro.C25a44f;
                                break;
                            case 15:
                                rec.C45a49m = elregistro.C45a49f;
                                break;
                            case 16:
                                rec.C45a49f = elregistro.C45a49f;
                                break;
                            case 17:
                                rec.C50a59m = elregistro.C50a59m;
                                break;
                            case 18:
                                rec.C50a59f = elregistro.C50a59f;
                                break;
                            case 19:
                                rec.C60a64m = elregistro.C60a64m;
                                break;
                            case 20:
                                rec.C60a64f = elregistro.C60a64f;
                                break;
                            case 21:
                                rec.C65a69m = elregistro.C65a69m;
                                break;
                            case 22:
                                rec.C65a69f = elregistro.C65a69f;
                                break;
                            case 23:
                                rec.C70ymasm = elregistro.C70ymasm;
                                break;
                            case 24:
                                rec.C70ymasf = elregistro.C70ymasf;
                                break;

                            default:

                                break;
                        }

                    }



                    centinela = elregistro.claveepi;
                    
                }

    les agradezco de antemano cualquier tip al respecto

    martes, 28 de agosto de 2018 1:10

Respuestas

Todas las respuestas

  • Hola, y porque lo haces de esa forma , no has pensado en hacer la consulta en sql y que te los devuelva en el formato que buscas

    Pivot y Unpivot en SQL Server 2005 

    o algo mas dinámico

    pivote sql server transponer nombres


    Votar es agradecer.
    Saludos.
    Lima-Perú



    martes, 28 de agosto de 2018 2:28
  • muchas gracias , lo pude lograr con el siguiente algoritmo :

     string centinela = "";


                var agrupacion = from p in db.CON1
                                 group p by p.areanuc into grupo
                                 select grupo;
                foreach (var grupo in agrupacion)
                {

                  /*  ListBox3.Items.Add("Index: " + grupo.Key);*/
                    string areanuc = grupo.Key;


                    if (areanuc != centinela)
                    {
                        CON2 rec = new CON2();
                        rec.areanuc = grupo.Key;
                        rec.sub1 = 0;
                        rec.sub1 = 0;
                        rec.sub1 = 0;
                        rec.sub1 = 0;
                        rec.vc1vez = 0;
                        rec.subsec = 0;
                        rec.total = 0;

                        foreach (var objetoAgrupado in grupo)
                        {
                            rec.id = objetoAgrupado.id;

                            if (objetoAgrupado.con11 != 0)
                                rec.con1 = objetoAgrupado.con11;
                            else
                            // rec.menos1m = null;}
                            if (objetoAgrupado.con2 != 0)
                                rec.con21 = objetoAgrupado.con2;
                            else
                              // rec.menos1m = null;
                              if (objetoAgrupado.con3 != 0)
                                rec.con3 = objetoAgrupado.con3;
                            else
                                  // rec.menos1m = null;
                                  if (objetoAgrupado.con4 != 0)
                                rec.con4 = objetoAgrupado.con4;
                            else
                                  // rec.menos1m = null;
                                  if (objetoAgrupado.con5 != 0)
                                rec.con5 = objetoAgrupado.con5;
                            else
                                  //
                                  if (objetoAgrupado.con6 != 0)
                                rec.con6 = objetoAgrupado.con6;
                            else
                                  //
                                  if (objetoAgrupado.con7 != 0)
                                rec.con7 = objetoAgrupado.con7;
                            else
                                  //
                                  if (objetoAgrupado.con7 != 0)
                                rec.con7 = objetoAgrupado.con7;
                            else
                                  //
                                  if (objetoAgrupado.con8 != 0)
                                rec.con8 = objetoAgrupado.con8;
                            else
                                  //
                                  if (objetoAgrupado.con9 != 0)
                                rec.con9 = objetoAgrupado.con9;
                            else
                                  //
                                  if (objetoAgrupado.con10 != 0)

                                rec.con10 = objetoAgrupado.con10;

                            else
                                  //
                                  if (objetoAgrupado.con111 != 0)
                                rec.con11 = objetoAgrupado.con111;
                            else
                                  //
                                  if (objetoAgrupado.con12 != 0)
                                rec.con12 = objetoAgrupado.con12;
                            else
                                  //
                                  if (objetoAgrupado.con13 != 0)
                                rec.con13 = objetoAgrupado.con13;
                            else
                                  //
                                  if (objetoAgrupado.con14 != 0)
                                rec.con14 = objetoAgrupado.con14;
                            else
                                  //
                                  if (objetoAgrupado.con15 != 0)
                                rec.con15 = objetoAgrupado.con15;
                            else
                                  //
                                  if (objetoAgrupado.con16 != 0)
                                rec.con16 = objetoAgrupado.con16;
                            else
                                  //
                                  if (objetoAgrupado.con17 != 0)
                                rec.con17 = objetoAgrupado.con17;
                            else
                                  //
                                  if (objetoAgrupado.con18 != 0)
                                rec.con18 = objetoAgrupado.con18;
                            else
                                  //
                                  if (objetoAgrupado.con19 != 0)
                                rec.con19 = objetoAgrupado.con19;
                            else
                                  //
                                  if (objetoAgrupado.con20 != 0)
                                rec.con20 = objetoAgrupado.con20;
                            else
                                  //
                                  if (objetoAgrupado.con21 != 0)
                                rec.con211 = objetoAgrupado.con21;
                            else
                                  //
                                  if (objetoAgrupado.con22 != 0)
                                rec.con22 = objetoAgrupado.con22;
                            else
                                  //cero = 0;
                                  if (objetoAgrupado.con23 != 0)
                                rec.con23 = objetoAgrupado.con23;
                            else
                                  //cero = 0;
                                  if (objetoAgrupado.con24 != 0)
                                rec.con24 = objetoAgrupado.con24;
                            else
                                  //cero = 0;
                                  if (objetoAgrupado.con25 != 0)
                                rec.con25 = objetoAgrupado.con25;
                            else
                                  //cero = 0;
                                  if (objetoAgrupado.con26 != 0)
                                rec.con26 = objetoAgrupado.con26;
                            else
                                  //cero = 0;
                                  if (objetoAgrupado.con27 != 0)
                                rec.con27 = objetoAgrupado.con27;
                            else
                                  if (objetoAgrupado.con28 != 0)
                                rec.con28 = objetoAgrupado.con28;
                            else
                                  //cero = 0;
                                  if (objetoAgrupado.con29 != 0)
                                rec.con29 = objetoAgrupado.con29;
                            else
                                  //cero = 0;
                                  if (objetoAgrupado.con30 != 0)
                                rec.con30 = objetoAgrupado.con30;
                            else
                                  //
                                  if (objetoAgrupado.con31 != 0)
                                rec.con31 = objetoAgrupado.con31;
                            else
                                  //
                                  if (objetoAgrupado.con32 != 0)
                                rec.con32 = objetoAgrupado.con32;
                            else
                                  //
                                  if (objetoAgrupado.con33 != 0)
                                rec.con33 = objetoAgrupado.con33;
                            else
                                  //
                                  if (objetoAgrupado.con34 != 0)
                                rec.con34 = objetoAgrupado.con34;
                            else
                                  //
                                  if (objetoAgrupado.con35 != 0)
                                rec.con35 = objetoAgrupado.con35;
                            else
                                  //
                                  if (objetoAgrupado.con36 != 0)
                                rec.con36 = objetoAgrupado.con36;
                            else
                                  //
                                  if (objetoAgrupado.con37 != 0)
                                rec.con37 = objetoAgrupado.con37;
                            else
                                  //
                                  if (objetoAgrupado.con38 != 0)
                                rec.con38 = objetoAgrupado.con38;
                            else
                                  //
                                  if (objetoAgrupado.con39 != 0)
                                rec.con39 = objetoAgrupado.con39;
                            else
                                  //
                                  if (objetoAgrupado.con40 != 0)
                                rec.con40 = objetoAgrupado.con40;
                            else
                                  //
                                  if (objetoAgrupado.con41 != 0)
                                rec.con41 = objetoAgrupado.con41;
                            else
                                  //
                                  if (objetoAgrupado.con42 != 0)
                                rec.con42 = objetoAgrupado.con42;
                            else
                                  //
                                  if (objetoAgrupado.con43 != 0)
                                rec.con43 = objetoAgrupado.con43;
                            else
                                  //
                                  if (objetoAgrupado.con44 != 0)
                                rec.con44 = objetoAgrupado.con44;
                            else
                                  //
                                  if (objetoAgrupado.con45 != 0)
                                rec.con45 = objetoAgrupado.con45;
                            else
                                   //
                                   if (objetoAgrupado.con46 != 0)
                                rec.con46 = objetoAgrupado.con46;
                            else
                                  //
                                  if (objetoAgrupado.con47 != 0)
                                rec.con47 = objetoAgrupado.con47;
                            else
                                  //
                                  if (objetoAgrupado.con48 != 0)
                                rec.con48 = objetoAgrupado.con48;
                            else
                                  //
                                  if (objetoAgrupado.con49 != 0)
                                rec.con49 = objetoAgrupado.con49;
                            else
                                  //
                                  if (objetoAgrupado.con50 != 0)
                                rec.con50 = objetoAgrupado.con50;
                            else
                                  //
                                  if (objetoAgrupado.con51 != 0)
                                rec.con51 = objetoAgrupado.con51;
                            else
                                  //
                                  if (objetoAgrupado.con52 != 0)
                                rec.con52 = objetoAgrupado.con52;
                            else
                                  //cero = 0; 
                                  if (objetoAgrupado.sub1 != 0)
                                //  rec.sub1 = objetoAgrupado.sub1;
                                rec.sub1 = rec.sub1 + (rec.con11 + rec.con21 + rec.con3 + rec.con4 + rec.con5 + rec.con6 + rec.con7 + rec.con8 + rec.con9 + rec.con10);
                            else
                                //cero = 0; 
                                if (objetoAgrupado.sub2 != 0)
                                //rec.sub2 = objetoAgrupado.sub2;
                                rec.sub2 = rec.sub2 + (rec.con11 + rec.con12 + rec.con13 + rec.con14 + rec.con15 + rec.con16 + rec.con17 + rec.con18 + rec.con19 + rec.con20);
                            else
                                //cero = 0; 
                                if (objetoAgrupado.sub3 != 0)
                                //  rec.sub3 = objetoAgrupado.sub3;
                                rec.sub3 = rec.sub3 + (rec.con21 + rec.con22 + rec.con23 + rec.con24 + rec.con25 + rec.con26 + rec.con27 + rec.con28 + rec.con29 + rec.con30);
                            else
                                //cero = 0; 
                                if (objetoAgrupado.sub4 != 0)
                                //  rec.sub4 = objetoAgrupado.sub4;
                                rec.sub4 = rec.sub4 + (rec.con31 + rec.con32 + rec.con33 + rec.con34 + rec.con35 + rec.con36 + rec.con37 + rec.con38 + rec.con39 + rec.con40);
                            else
                                //cero = 0; 
                                if (objetoAgrupado.vc1vez != 0)
                                //rec.vc1vez = objetoAgrupado.vc1vez;
                                rec.vc1vez = rec.vc1vez + (rec.con41 + rec.con42);

                            else
                                //cero = 0; 
                                if (objetoAgrupado.subsec != 0)
                                //rec.subsec = objetoAgrupado.subsec;
                                rec.subsec = rec.subsec + (rec.sub2 + rec.sub4);
                            else
                                //cero = 0; 
                                if (objetoAgrupado.total != 0)
                                //rec.total = objetoAgrupado.total;
                                rec.total = rec.total + (objetoAgrupado.total);
                            else
                                //cero = 0; 
                                System.Console.WriteLine("No se realizo");
                            /*    ListBox3.Items.Add(rec.areanuc);*/

                        }

                        try
                        {
                            db.CON2.Add(rec);
                            db.SaveChanges();
                        }
                        catch (Exception Ex)
                        {
                            System.Console.WriteLine("Property: ", Ex);
                        }
                        rowStart++;

                    }
                    centinela = areanuc;


                }

    viernes, 12 de octubre de 2018 17:08