コード例 #1
0
        /// <summary>
        /// Retorna todas las categorias de la base de datos
        /// </summary>
        /// <returns></returns>
        public Entidades.Categorias GetAll()
        {
            //Creamos la conexión a utilizar.
            //Utilizamos la sentencia Using para asegurarnos de cerrar la conexión y liberar el objeto al salir de esta sección de manera automática
            SqlConnection oCnn = Presentación.Conexion.CrearConexion();

            try
            {
                using (oCnn)
                {
                    //Abrimos conexion
                    oCnn.Open();

                    //Creamos un comando para obtener todas las categorias de la base de datos
                    SqlCommand oCmd = new SqlCommand();
                    using (oCmd)
                    {
                        //Asignamos la conexion de trabajo
                        oCmd.Connection = oCnn;

                        //Indicamos la sentencia SQL
                        oCmd.CommandText = "SELECT * FROM Categorias";

                        //Siempre devolvemos una colección. Es más fácil de manipular y controlar
                        Entidades.Categorias oCategorias = new Entidades.Categorias();

                        //No retornamos DataSets, siempre utilizamos objetos para hacernos independientes de la estructura de las tablas en el resto de las capas.
                        //Para esto, leemos con el DataReader y creamos los objetos asociados que se esperan
                        try
                        {
                            //Ejecutamos el comando y retornamos los valores
                            SqlDataReader oReader = oCmd.ExecuteReader();
                            using (oCnn)
                            {
                                while (oReader.Read())
                                {
                                    //Si existe algun valor, creamos el objeto y lo almacenamos en la colección
                                    Entidades.Categoria oCategoria = new Entidades.Categoria();

                                    oCategoria.idCategoria = Convert.ToInt32(oReader["idCategoria"]);
                                    oCategoria.descripcion = Convert.ToString(oReader["descripcion"]);

                                    //Agregamos el objeto a la coleccion de resultados
                                    oCategorias.Add(oCategoria);

                                    oCategoria = null;
                                }

                                //Retornamos los valores encontrados
                                return(oCategorias);
                            }
                        }
                        finally
                        {
                            //El Finally nos da siempre la oportunidad de liberar la memoria utilizada por los objetos
                            oCategorias = null;
                        }
                    }
                }
            }
            catch (Exception Ex)
            {
                Exception ExcepcionManejada = new Exception("Error al obtener los datos de las categorias.", Ex);
                throw ExcepcionManejada;
            }
        }