Professional Documents
Culture Documents
Integrantes: Manuel Abraham Gutirrez Rojas Jeanneth del Socorro Mota Lpez Nelson Eddy Castro Chavarra Grupo: 4T1-CO --- 2011
Explicamos el procedimiento paso a paso de cmo crear un proyecto en 3 capas con la plataforma visual studio 2008 en el lenguaje C# Abrir Visual Studio y crear un nuevo Proyecto
Crear los formularios Necesarios para la aplicacin Para efecto de ejemplo se crear una nica pantalla donde se cargarn los datos en un dataGridView desde una base de datos, para lo cual se deben seguir los siguientes pasos: Renombrar el Formulario por defecto (Form1) con el nombre de frmPrincipal, al igual que el archivo Form1.cs Aadir un componente de tipo dataGridView y renombrarlo con el nombre de dgvDatos
Ya con nuestro proyecto de interfaz creado, el siguiente paso ser crear la capa de datos para lograr una conexin con la base de datos. Para esto se debe crear un nuevo proyecto en nuestra solucin este tipo de proyecto ser una biblioteca de clases ya que al momento de construir la solucin este proyecto ser exportado como un .dll
Posteriormente ingresar el nombre del proyecto (En nuestro caso datos, para hacerlo ms representativo) y seleccionar el tipo de proyecto biblioteca de clases
Luego de crear nuestro proyecto datos, renombramos la clase que aparece por defecto (Class1.cs) con el nombre clsDato.cs
4
Estas variables son usadas para Instanciar la cadena de Conexin hacia el servidor de la BD
#region Variables Publicas public System.Data.SqlClient.SqlDataAdapter da = new System.Data.SqlClient.SqlDataAdapter(); public System.Data.SqlClient.SqlConnection cnx = new System.Data.SqlClient.SqlConnection(); public System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(); public System.Data.DataSet ds = new DataSet(); #endregion
Las variables pblicas creadas arriba son las que manipularan la conexin de los datos en las capas de Negocio e Interfaz A continuacin el encapsulamiento de las variables de Instancia, para obtener o colocar el valor de dicha variable
#region Propiedades /// <summary> /// Nombre de la Base de Datos /// </summary> public string BD { get { return this._BD; }
Ya que hemos concluido el diseo de la capa de Datos, procederemos a crear nuestra capa de Negocio, que contendr el llamado a los procedimientos de la Base de Datos para ingreso y consulta de Datos De la misma manera se crear otro proyecto de tipo biblioteca de clases bajo el nombre de Negocio
No se sugiere ninguna, ya que ambas generan el mismo resultado, en nuestro caso utilizaremos la forma 1 y dividiremos las clases con regiones. Ahora que tenemos creados nuestros 3 proyectos o capas, se debe hacer el enlace entre los mismos para que un proyecto pueda tener referencias del otro.
Si el Visual Studio no ha colocado al proyecto Interfaz como el proyecto principal (En letra negrita) se puede sealar haciendo click derecho sobre el proyecto y seleccionar la opcin Establecer como proyecto Principal
10
El constructor de la clase recibe un parmetro de tipo clsDato, dado que en esta clase los objetos para la conexin ya estn instanciados
#region Proveedores /// <summary> /// Clase para manipular /// los datos de los Proveedores /// </summary> public class Proveedores { clsDato dato; //Objeto de tipo clsDato /// <summary> /// Constructor de la clase /// </summary> /// <param name="d">Objeto de tipo clsDatos instanciado</param> public Proveedores(clsDato d) { this.dato = d; }
Ahora procederemos a la creacion de un metodo que retorna un dataTable con la informacion de los Proveedores *El nombre de la vista se puede cambiar por uno existente en su Base de Datos
/// <summary> /// Obtiene los Datos de los Proveedores /// </summary> /// <returns>dataTable con la informacin</returns> public DataTable getProveedores() { DataTable dt = new DataTable(); String query = "SELECT * FROM VW_Proveedores";
11
//Abrir la conexion con la BD this.dato.cnx.Open(); //Limpiar el dataSet this.dato.ds.Tables.Clear(); //Llenar las tablas con la consulta this.dato.da = new SqlDataAdapter(query, this.dato.cnx); this.dato.da.Fill(this.dato.ds, "Proveedores"); //Cerrar la conexion this.dato.cnx.Close(); //retornar la tabla return this.dato.ds.Tables["Proveedores"]; } }//Fin de la Clase Proveedores #endregion
Ahora en Nuestra capa de Inerfaz en el formulario frmPrincipal, especificamente en el metodo load, procederemos a cargar los datos de la vista que se invocan desde la capa de Negocio Para esto se aaden las directivas using de los 2 proyectos adicionales
using Datos; using Negocio;
La clase frmPrincipal quedar de la siguiente manera con el llamado al mtodo de la capa de Negocio en el Load del Formulario
public partial class frmPrincipal : Form { clsDato dato = new clsDato(); //Objeto de Tipo clsDato Instanciado public frmPrincipal() { InitializeComponent(); } private void frmPrincipal_Load(object sender, EventArgs e) { try { //Crear la conexion para la autenticacion de Windows this.dato.ConectarBD(false); //Crear objeto de tipo Proveedores Proveedores prov = new Proveedores(this.dato); //Cargar la tabla con los Proveedores dgvDatos.DataSource = prov.getProveedores(); }
12
Ya que el metodo getProveedores retorna un dataTable, se asigna directamente la fuente de datos del dataGridView, y la linea
this.dato.ConectarBD(false); o this.dato.ConectarBD(true);
Debe ir siempre que se invoque a un metodo que implique conexin, ya que esta linea instancia la cadena de conexion Ahora si ejecutamos el programa (F5) los resultados sern similares a los siguientes
En este manual, se ha mostrado como capturar los datos desde la BD, pero de la misma manera se puede hacer cualquiera de las operaciones soportadas por el gestor de BD como ejemplos:
String sqlIns = "INSERT INTO TABLE(V1) VALUES '"+ var +"' ";
Solamente se manda a ejecutar como un comando sql en el metodo encargado de la accion. De la misma manera si se desea hacer fuentes de datos directas con la BD (con asistente), se deben crear los componentes en la capa de Negocio, y hacer referencia con el objeto clsdato
13