Вы находитесь на странице: 1из 18

Miguel Salvador EJEMPLO CONSULTA A BASE DE DATOS

En este ejemplo se mostrara una forma bsica de cmo organizar una solucin usando el Visual Studio 2008. Abrimos el Visual Studio 2008 y agregamos un nuevo proyecto

Escogemos crear una Solucin en Blanco y le damos un nombre:

La solucin constar de varios proyectos. Agregamos un nuevo proyecto

Pg. 1 de 18

Miguel Salvador

Escogemos el proyecto de tipo Librera de Clases y le damos su nombre

De la misma forma agregamos 2 proyecto mas del tipo Librera de Clases y los llamamos Demo.AccesoDatos y Demo.LogicaNegocio. Luego agregamos un proyecto de tipo Consola al que llamaremos Demo.Consola

Pg. 2 de 18

Miguel Salvador

Quedando, por el momento la solucin de la siguiente forma:

El ejemplo trabajara con una Base de Datos que por el momento solo le hemos creado una tabla llamada Articulo y tiene la siguiente estructura

Pg. 3 de 18

Miguel Salvador

Hay varias formas de trabajar para los accesos a datos, en esta ocasin nos valdremos de Entidades que se mapean a las tablas. Para dicho fin se har lo siguiente:

Eliminamos la clase que se crea por defecto y agregamos una nueva clase a la cual la llamaremos Articulo, al cual le agregaremos el siguiente cdigo

Pg. 4 de 18

Miguel Salvador

En la capa de Entidades estamos mapeando la tabla Articulo y la agregamos propiedades mapeadas a la estructura de la tabla, de forma que sea un reflejo de la estructura que tenemos en la Base de Datos Cabe destacar que todos los proyectos existentes en la solucin debern hacer referencia a este proyecto de Entidades. En el proyecto de Acceso a Datos vamos a Eliminar el que viene por defecto y agregaremos uno que se llamara ArticuloDA. Agregaremos un mtodo llamado ConsultaBasica. Haremos el Add Reference a la clase Demo.Entidades y a System.Configuration Agregamos estos accesos al inicio de la clase
using using using using Demo.Entidades; System.Data.SqlClient; System.Data; System.Configuration;

Pg. 5 de 18

Miguel Salvador En el cual agregaremos el siguiente mtodo:


public List<Articulo> ConsultaBasica() { string cadenaconexion = ConfigurationManager.ConnectionStrings["SQL"].ConnectionString; List<Articulo> listaarticulos = new List<Articulo>(); using (SqlConnection connection = new SqlConnection(cadenaconexion)) { SqlCommand comando = new SqlCommand("select IdArticulo, Nombre, Descripcion, Costo, PVenta from articulo", connection); comando.CommandType = CommandType.Text; connection.Open(); SqlDataReader reader = comando.ExecuteReader(); try { while (reader.Read()) { Articulo articulo = new Articulo(); articulo.IdArticulo = (int)reader["IdArticulo"]; articulo.Nombre = (string)reader["Nombre"]; articulo.Descripcion = (string)reader["Descripcion"]; articulo.Costo = (decimal)reader["Costo"]; articulo.PVenta = (decimal)reader["PVenta"]; listaarticulos.Add(articulo); } } catch (Exception ex) { throw ex; } finally { reader.Close(); } } return listaarticulos; } Este metodo consultara una lista de los articulo existentes en la tabla Articulo. Siguiendo la secuencia en el proyecto de LogicaNegocio referencia al Demo.AccesoDatos. Le agregamos una clase ArticuloBO y le agregaremos un metodo llamado ListaArticulo. Siempre en el encabezado ponemos using Demo.AccesoDatos; using Demo.Entidades; Y el metodo es public List<Articulo> ListaArticulos() { return new ArticuloDA().ConsultaBasica(); } haremos llamada

Pg. 6 de 18

Miguel Salvador

CLIENTE CONSOLA Para poder hacer la prueba del acceso a datos en el proyecto de consola Demo.Consola agregaremos un Archivo de Configuracion con el nombre por defecto App.Config y codificamos <?xml version="1.0" encoding="utf-8" ?> <configuration> <connectionStrings> <add name="SQL" connectionString="Data Source=MiServidorSQL;Initial Catalog=Clase1;Integrated Security=True" providerName="System.Data.SQLClient"/> </connectionStrings> </configuration>

Luego hacemos las referencia al Demo.Entidades y Demo.LogicaNegocios. Y en el Program.cd codificamos

static void Main(string[] args) { List<Articulo> listaArticulo = new ArticuloBO().ListaArticulos(); foreach (Articulo item in listaArticulo) { Console.WriteLine("Articulo Codigo {0} Nombre {1} el Precio {2} y el Costo {3}", item.IdArticulo, item.Nombre, item.PVenta, item.Costo); } Console.ReadKey(); } Luego compilamos y ejecutamos y debera salir el ejemplo

Obviamente dichos datos de prueba se ingresaron previamente.

Pg. 7 de 18

Miguel Salvador

CLIENTE WINFORM Para hacer lo propio en consulta WindowsForm agregamos un proyecto de este tipo y lo llamamos Demo.ClienteWin

Agregamos la regencia de Demo.Entidad y Demo.LogicaNegocio y tambien le agregamos el Archivo de configuracin App.Config y lo ponemos los mismos datos para la conexin a la base de datos. Luego agregamos un nuevo origen de datos.

Pg. 8 de 18

Miguel Salvador

Escogemos el tipo OBJETO

Pg. 9 de 18

Miguel Salvador Luego escogemos la entidad Articulo y finalizamos

Al finalizar dicho punto tendras un elemento que usaremos para la consulta

En la opcin mostrada escogemos el que dice DataGridView Luego arrastramos dicho elemento al formulario y se crearan dos elementos tal cmo se muestra

Pg. 10 de 18

Miguel Salvador

Eliminaremos la barra de navegacin o BindingNavigator y solo nos quedaremos con el Gris y el BindingSource. Agregamos un botn para recuperar los datos de Articulos.

Hacemos doble clic en el botn y codificamos

Pg. 11 de 18

Miguel Salvador

private void btnRecuperaArticulo_Click(object sender, EventArgs e) { articuloBindingSource.DataSource = new ArticuloBO().ListaArticulos(); }

Seteamos que el proyecto Demo.ClienteWin sea el que carga por defecto

Ejecutamos y nos recuperar los datos solicitados.

Pg. 12 de 18

Miguel Salvador

CLIENTE WEB Agregamos un nuevo Sitio Web

Entremos a la opcion Browse para elegir al carpeta a almacenar.

Pg. 13 de 18

Miguel Salvador

Agregamos la carpeta en caso sea necesario y tendremos nuestro proyecto web.

Hacemos la referencia a los proyecto de Demo.Entidades y Demo.LogicaNegocio. Luego editamos el web.config para configurarle el connectstring

Pg. 14 de 18

Miguel Salvador

La pagina Default.aspz la abrimos con la vista de diseador

Arrastramos un control GridView sobre la pagina, en la cual se creara el control y nos mostrar la ayuda para las configuraciones. Cambiamos el origen de datos por uno nuevo

Pg. 15 de 18

Miguel Salvador

Escogemos el tipo Objeto y le damos un nombre

Pg. 16 de 18

Miguel Salvador Escogemos la clase ArticuloBO.

Escogemos el metodo ListaArticulo y finalizamos

Luego generamos el sitio web y lo vemos en el browser

Pg. 17 de 18

Miguel Salvador

Como resultado podemos ver la consulta en el Internet Explores

Pg. 18 de 18

Вам также может понравиться