Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Integrantes: Manuel Abraham Gutirrez Rojas Jeanneth del Socorro Mota Lpez Nelson Eddy Castro Chavarra Grupo: 4T1-CO --- 2011 Docente: Giovanni Senz
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
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
Para aadir un nuevo proyecto a la solucin hacer click derecho sobre el nombre de la solucin, Agregar, Nuevo Proyecto
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 Como se haba mencionado anteriormente, en esta capa se ubica nicamente los objetos para manipular los datos, como lo son la conexin, los adaptadores y los dataset Esta clase mas detallada queda asi: Aadir directivas using para datos
using System.Data.SqlClient; using System.Data; public class clsDato { #region Variables de Instancia private private private private private #endregion string string string string string _BD = "[Nombre_BD]"; _PWD; //Contrasea _User; //Nombre de Usuario _Servidor = "[Nombre_SERVER]"; _Error; //Mensaje de Error de la BD
Estas variables son usadas para Instanciar la cadena de Conexin hacia el servidor de la BD
#region Variables Publicas
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; } set { }
this._BD = value;
} /// <summary> /// Nombre del Usuario que accede a la BD /// </summary> public string User { get { return this._User; } set { this._User = value; } } /// <summary> /// Nombre del Servidor /// </summary> public String Servidor { get { return this._Servidor;
A continuacin la lista de metodos que manipularan la conexin a los datos, en nuestro caso solo hemos utilizado uno, que es para crear la conexin
#region Metodos /// <summary> /// Crea la conexin con la Base de Datos /// </summary> /// <param name="bolAutenticacion">true--> Autenticacion de SQL, false-->Autenticacion de Windows</param> public void ConectarBD(Boolean bolAutenticacion) { this.cnx = new System.Data.SqlClient.SqlConnection(); if (bolAutenticacion == true) { this.cnx.ConnectionString = "Data Source=" + this.Servidor + ";Initial Catalog=" + this.BD + ";Persist Security Info=TRUE;User ID=" + this.User + ";Password=" + this.PWD; } else { this.cnx.ConnectionString = "Data Source=" + this.Servidor + ";Initial Catalog=" + this.BD + ";Integrated Security=True"; }
#endregion
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
Y procedemos a renombrar la clase por defecto ahora bajo el nombre clsMetodos.cs. Cabe destacar que en esta capa existen dos formas de ubicar el cdigo, la primera es colocar el cdigo de todas las clases en clsMetodo luego de la declaracin del NameSpace
namespace Negocio { public class Clase1 { } public class Clase2 { } public class Clase3 { }
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.
A nuestro proyecto de interfaz le aadiremos las referencias a los proyectos de Negocio y Datos, para esto seguir los siguientes pasos: Click derecho al proyecto Interfaz y luego seleccionar la opcin Aadir referencia
Para la capa de Negocio, se debe realizar el mismo procedimiento, pero solo se seleccionara la capa de Datos que es a la nica que consultaran los mtodos que se creen en este proyecto
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
Ahora que ya contamos con nuestros 3 proyectos y ya se han creado las referencias, procedemos al desarrollo del cdigo para el proyecto de Interfaz
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";
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();
} }
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 +"' ";