none
Como ordenar por casilleros, el resultado de una consulta SELECT asp.net c# (1) RRS feed

  • Pregunta

  • Question
    No puede votar su propia entrada
    0

    Entiendo, es decir, en la entidad hay que poner

    public nota1 {get; set}

    public nota2 {get; set}....

    y asi sucesivamente.....

    public nota9 {get; set}....???

    Pero en la tabla tengo una sola columna de Nota con una sola columna de Fecha......

    Y en la misma consulta que hice debo hacer "pivot"????, como referencia cruzada??, Por ejemplo:

    public List<AsistenciaEntity> getAlMat(int Alumno)
            {
                try
                {
                    connection.Open();
                    command.Parameters.AddWithValue("@Alum", Alumno);
    
                    command.CommandText = @"SELECT B.Id_Alumno, B.Nombre, B.Apellido, B.Dni, D.Id_Materia, D.Nombre AS NombreMateria, A.Id_Turno, N.Id_Nota, N.Nota, N.Trimestre
                                            FROM 	                                    
    	                                    MateriaPorAlumno AS A,
    	                                    Alumno AS B,
    	                                    TurnoMateria AS C,
    	                                    Materias AS D,
                                            Notas AS N 
     pivot ( for Notas in ([Nota1],[Nota2],[Nota3],[Trim1], [Nota4],[Nota5],[Nota6],[Trim2], [Nota7], [Nota8], [Nota9], [Trim3])) as NotasTrim”                                    
                                            WHERE
                                            A.Id_Alumno = B.Id_Alumno AND
    	                                    C.Id_Turno = A.Id_Turno AND
    	                                    D.Id_Materia = C.Id_Materia AND
                                            N.Id_MateriaPorAlumno = A.Id AND                                                                        
                                            B.Id_Alumno = @Alum Order By N.[Trimestre] Asc";
                         
                    OleDbDataReader lector = command.ExecuteReader();
    
                    List<AsistenciaEntity> listAsistencia = new List<AsistenciaEntity>();
                    while (lector.Read())
                    {
                        AsistenciaEntity asistencia = new AsistenciaEntity();
                        asistencia.Turno = new TurnoEntity();
                        asistencia.Turno.Materia = new MateriaEntity();
                        asistencia.Turno.Materia.Id_Materia = Convert.ToInt32(lector["Id_Materia"].ToString());
                        asistencia.Turno.Materia.Nombre = lector["NombreMateria"].ToString();
    
                        asistencia.Alumno = new AlumnoEntity();
                        asistencia.Alumno.Id_Alumno = Convert.ToInt32(lector["Id_Alumno"].ToString());
                        asistencia.Alumno.Nombre = lector["Nombre"].ToString();
                        asistencia.Alumno.Apellido = lector["Apellido"].ToString();
                        asistencia.Alumno.Dni = Convert.ToInt32(lector["Dni"].ToString());
    
                        asistencia.MateriaPorAlumno = new MateriaPorAlumnoEntity();
                        asistencia.MateriaPorAlumno.Turno = new TurnoEntity();
                        asistencia.MateriaPorAlumno.Turno.Id_Turno = Convert.ToInt32(lector["Id_Turno"].ToString()); 
    
                        asistencia.Nota = new NotaEntity();
                        asistencia.Nota.Id_Nota = Convert.ToInt32(lector["Id_Nota"].ToString());
                        asistencia.Nota.Nota = Convert.ToInt32(lector["Nota"].ToString());
                        asistencia.Nota.Trimestre = Convert.ToInt32(lector["Trimestre"].ToString());
    
                        listAsistencia.Add(asistencia);
    
                    }
                    return listAsistencia;
                }
                catch (Exception ex)
                {
    

    viernes, 4 de noviembre de 2016 15:15

Respuestas

  • hola

    pero en el SELECT no veo que definas las columnas Nota1, Nota2, ... NotaN para poder mapear con las propiedades que debe tener la clase

    no es una sola nota la que devuelves sino son 9 propiedades/columnas diferentes

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 4 de noviembre de 2016 17:02

Todas las respuestas

  • hola

    pero en el SELECT no veo que definas las columnas Nota1, Nota2, ... NotaN para poder mapear con las propiedades que debe tener la clase

    no es una sola nota la que devuelves sino son 9 propiedades/columnas diferentes

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 4 de noviembre de 2016 17:02
  • Hola, disculpa, Leo..........esta es mi Tabla Notas, donde se aprecia como estan puestas las notas, por eso en el SELECT no estan pedidas como Nota1, Nota2, Nota3, ............Nota9.............................y dejo la Captura de como quisiera acomodarlas............Sabras algo??? (como referencia cruzadas no me permite en Acces mas de tres columnas)

    Id_Nota| Id_Tipo | Nota| Fecha| Id_MateriaPorAlumno| Orden| Trimestre

                |             |     4 |          |                                  |          |   

                |             |    7  |          |                                  |          |  

                |             |     0 |          |                                  |          |

                |             |     2 |          |                                  |          |

    Cod. Negocio

    O crear una funcion aqui

    asistencia.Nota = new NotaEntity(); asistencia.Nota.Id_Nota = Convert.ToInt32(lector["Id_Nota"].ToString());

    if (Nota == "Marzo" (aunque esta en Fecha/Hora)) asistencia.Nota.Nota = Convert.ToInt32(lector["Nota"].ToString());

    if (Nota == "Abril")

    asistencia.Nota.Nota = Convert.ToInt32(lector["Nota"].ToString());

    if (Nota == "Mayo")

    asistencia.Nota.Nota = Convert.ToInt32(lector["Nota"].ToString());

    asistencia.Nota.Trimestre = Convert.ToInt32(lector["Trimestre"].ToString()); listAsistencia.Add(asistencia);


    viernes, 4 de noviembre de 2016 18:22
  • Solucionado, mil millones de grcaias...
    domingo, 6 de noviembre de 2016 20:46