public Sesion ObtenSesion(int idSesion) { Sesion sesion = null; SqliteDataReader datos = null; try { SqliteCommand comando; comando = Conexion.CreateCommand(); comando.CommandText = "SELECT idSesion, " + "peliculas.idPelicula AS 'idPelicula', " + "peliculas.titulo AS 'titulo'," + "peliculas.cartel AS 'cartel'," + "peliculas.genero AS 'genero'," + "peliculas.año AS 'año'," + "peliculas.calificacion AS 'calificacion'," + "salas.idSala AS 'idSala'," + "salas.numero AS 'nombreSala'," + "salas.capacidad AS 'capacidad'," + "salas.disponible AS 'disponible'," + "hora " + "FROM peliculas JOIN sesiones JOIN salas " + "ON sesiones.pelicula = peliculas.idPelicula " + "AND sesiones.sala = salas.idSala " + "WHERE sesiones.IdSesion=" + idSesion; datos = comando.ExecuteReader(); if (datos.HasRows) { int idPelicula, idSala, capacidad, año; string hora, tituloPelicula, cartel, genero, nombreSala, calificacion; bool disponible; if (datos.Read()) { idPelicula = datos.GetInt32(datos.GetOrdinal("idPelicula")); tituloPelicula = (string)datos["titulo"]; cartel = (string)datos["cartel"]; genero = (string)datos["genero"]; año = datos.GetInt32(datos.GetOrdinal("año")); calificacion = (string)datos["calificacion"]; Pelicula p = new Pelicula(idPelicula, tituloPelicula, cartel, año, genero, calificacion); idSala = datos.GetInt32(datos.GetOrdinal("idSala")); nombreSala = (string)datos["nombreSala"]; capacidad = datos.GetInt32(datos.GetOrdinal("capacidad")); disponible = datos.GetInt32(datos.GetOrdinal("disponible")) != 0; Salas s = new Salas(idSala, disponible, capacidad, nombreSala); hora = (string)datos["hora"]; sesion = new Sesion(idSesion, p, s, hora); } datos.Close(); } } catch (Exception ex) { MessageBox.Show("Leer sesion en la BD: " + ex.Message, "ERROR", MessageBoxButton.OK, MessageBoxImage.Error); } return(sesion); }
public ObservableCollection <Sesion> ObtenSesiones() { ObservableCollection <Sesion> sesiones = new ObservableCollection <Sesion>(); SqliteDataReader datos = null; try { SqliteCommand comando; Conexion.Open(); comando = Conexion.CreateCommand(); comando.CommandText = "SELECT idSesion, " + "peliculas.idPelicula AS 'idPelicula', " + "peliculas.titulo AS 'titulo'," + "peliculas.cartel AS 'cartel'," + "peliculas.genero AS 'genero'," + "peliculas.año AS 'año'," + "peliculas.calificacion AS 'calificacion'," + "salas.idSala AS 'idSala'," + "salas.numero AS 'nombreSala'," + "salas.capacidad AS 'capacidad'," + "salas.disponible AS 'disponible'," + "hora " + "FROM peliculas JOIN sesiones JOIN salas " + "ON sesiones.pelicula = peliculas.idPelicula " + "AND sesiones.sala = salas.idSala; "; datos = comando.ExecuteReader(); if (datos.HasRows) { int idSesion, idPelicula, idSala, capacidad, año; string hora, tituloPelicula, cartel, genero, nombreSala, calificacion; bool disponible; while (datos.Read()) { idPelicula = datos.GetInt32(datos.GetOrdinal("idPelicula")); tituloPelicula = (string)datos["titulo"]; cartel = (string)datos["cartel"]; genero = (string)datos["genero"]; año = datos.GetInt32(datos.GetOrdinal("año")); calificacion = (string)datos["calificacion"]; Pelicula p = new Pelicula(idPelicula, tituloPelicula, cartel, año, genero, calificacion); idSala = datos.GetInt32(datos.GetOrdinal("idSala")); nombreSala = (string)datos["nombreSala"]; capacidad = datos.GetInt32(datos.GetOrdinal("capacidad")); disponible = datos.GetInt32(datos.GetOrdinal("disponible")) != 0; Salas s = new Salas(idSala, disponible, capacidad, nombreSala); idSesion = datos.GetInt32(datos.GetOrdinal("idSesion")); hora = (string)datos["hora"]; sesiones.Add(new Sesion(idSesion, p, s, hora)); } } } catch (Exception ex) { MessageBox.Show("Leer salas en la BD: " + ex.Message, "ERROR", MessageBoxButton.OK, MessageBoxImage.Error); } finally { try { if (datos != null && !datos.IsClosed) { datos.Close(); } if (Conexion.State == ConnectionState.Open)//si la conexión está abierta la cierro { Conexion.Close(); } } catch (Exception ex) { MessageBox.Show("Error al cerrar: " + ex.Message, "ERROR", MessageBoxButton.OK, MessageBoxImage.Error); } } return(sesiones); }