sábado, 18 de agosto de 2012

Visual C#.NET - Introducción a C# (Parte 6)

Hola nuevamente, mediante esta segunda parte del manual continuare con la Introducción a C#.

Para esta aplicación habrá que crear un nuevo formulario, para eso hacer lo sgte: 
Al hacer esto se mostrara la sgte ventana en la cual daremos x nombre: FrmADO5, como en la imagen:
Al dar clic en Agregar se tendrá así:
Ahora realizar el sgte diseño. Nota: El formato del listview se hará x código. 
Ahora procederemos a crear nuestra Biblioteca de Clases, para eso dar clic derecho a la Solución, seleccionar Agregar y finalmente clic en Nuevo Proyecto, como en la imagen:
Al hacer esto se mostrara una ventana en la cual en el panel izquierdo deberás seleccionar Windows y en el panel derecho deberás elegir Biblioteca de Clases, En nombre deberás de poner el nombre del proyecto, en nuestro caso Componente y además establecer una ubicación en donde se guardara este proyecto, así como en la imagen:
Al dar clic en el botón Aceptar se creara el proyecto y se mostrara así:
Ahora seleccionaremos Class1.cs y lo eliminaremos. Ahora crear una nueva clase, para eso dar clic derecho en Componente, seleccionar Agregar y finalmente clic en Nuevo Elemento, así como en la imagen:
Al hacer esto se mostrara la sgte ventana en la cual seleccionaremos Clase y en Nombre estableceremos el nombre ClsComponente, así como en la imagen:
Al dar clic en Agregar, se mostrara lo sgte:
En esta clase vamos a crear nuestros Métodos con valor o sin valor de retorno que podrán ser accedidos por la Aplicación Windows.

La programación para esta clase será la sgte:

using System;
using System.Collections.Generic;
using System.Text;
using System.Data;//Objetos de ADO
using System.Data.SqlClient;//Provider de SQL Server
namespace Componente
{
    public class ClsComponente
    {
        SqlConnection Cn = new
        SqlConnection("Server=(Local);Database=Northwind;Uid=sa;Pwd=");
        public DataSet Listar_Region()
        {
            SqlDataAdapter Da = new SqlDataAdapter("Sp_ListarRegion"
            , Cn);
            DataSet Ds = new DataSet();
            Da.Fill(Ds);
            return Ds;
        }
        public DataSet Listar_Territorio(int Region)
        {
            String Cad = "Sp_ListarTerritorio " + Region;
            SqlDataAdapter Da = new SqlDataAdapter(Cad, Cn);
            DataSet Ds = new DataSet();
            Da.Fill(Ds);
            return Ds;
        }
        public DataSet Listar_Empleados(String Territorio)
        {
            String Cad = "Sp_ListarEmpleados '" + Territorio + "'";
            SqlDataAdapter Da = new SqlDataAdapter(Cad, Cn);
            DataSet Ds = new DataSet();
            Da.Fill(Ds);
            return Ds;
        }
        public DataSet Mostrar_Ordenes(int Empleado)
        {
            String Cad = "Sp_MostrarOrdenes " + Empleado;
            SqlDataAdapter Da = new SqlDataAdapter(Cad, Cn);
            DataSet Ds = new DataSet();
            Da.Fill(Ds);
            return Ds;
        }
        public DataSet Mostrar_Detalle(int Orden)
        {
            String Cad = "Sp_MostrarDetalles " + Orden;
            SqlDataAdapter Da = new SqlDataAdapter(Cad, Cn);
            DataSet Ds = new DataSet();
            Da.Fill(Ds);
            return Ds;
        }
    }
}

Ahora seleccionar el proyecto Componente, darle clic derecho y clic en Generar, así como en la imagen: 
Para saber si se ha generado el proyecto correctamente ir al Menú Ver y clic en Ventana de Resultados. Se tendrá algo así:
Con esto quiere decir de que se ha creado la DLL (Dynamic Library Language) llamada Componente, como sabrás esta DLL es reutilizable, quiere decir que cualquier proyecto (puede ser Visual Basic 6.0, etc.) puede invocar sus métodos. Ahora seleccionar AplicacionWindows, darle clic derecho y dar clic en Agregar Referencia, así como en la imagen:
Al hacer esto aparecerá una ventana en la cual daremos clic en la ficha Proyectos, en la cual seleccionaremos Componente, así como en la imagen:
Ahora dar clic en el botón Aceptar, se tendrá así:
Ahora seleccionar el Proyecto AplicaciónWindows dar clic derecho y clic en Generar, así como en la imagen:
Al hacer esto se mostrara la sgte información en la ventana de resultados:
Ahora vamos a darle un formato al DataGridView llamado DgvDetalle, para eso lo seleccionamos, damos clic derecho y damos clic en Editar Columnas, así como en la imagen:
Al hacer esto aparecerá la sgte ventana en la cual daremos clic en el botón Agregar:
Al dar clic en el botón Agregar, se mostrara una ventana en la cual pondremos lo sgte:
Ahora dar clic en el botón Agregar y clic en Cancelar, se mostrara la sgte ventana en la cual en la propiedad DataPropertyName pondremos el nombre del campo a mostrar, en mí caso es OrderID, en la propiedad Width poner como ancho de columna 70, así como en la imagen:
Ahora dar clic en el botón Agregar, se mostrara una ventana en la cual pondremos lo sgte:
Ahora dar clic en el botón Agregar y clic en Cancelar, se mostrara la sgte ventana en la cual en la propiedad DataPropertyName pondremos el nombre del campo a mostrar, en mí caso es ProductName, en la propiedad Width poner como ancho de columna 150, así como en la imagen:
Ahora dar clic en el botón Agregar, se mostrara una ventana en la cual pondremos lo sgte:
Ahora dar clic en el botón Agregar y clic en Cancelar, se mostrara la sgte ventana en la cual en la propiedad DataPropertyName pondremos el nombre del campo a mostrar, en mí caso es UnitPrice, en la propiedad Width poner como ancho de columna 50, así como en la imagen:
Ahora dar clic en el botón Agregar, se mostrara una ventana en la cual pondremos lo sgte:
Ahora dar clic en el botón Agregar y clic en Cancelar, se mostrara la sgte ventana en la cual en la propiedad DataPropertyName pondremos el nombre del campo a mostrar, en mí caso es Quantity, en la propiedad Width poner como ancho de columna 60, así como en la imagen:
Ahora dar clic en el botón Agregar, se mostrara una ventana en la cual pondremos lo sgte:
Ahora dar clic en el botón Agregar y clic en Cancelar, se mostrara la sgte ventana en la cual en la propiedad DataPropertyName pondremos el nombre del campo a mostrar, en mí caso es Total, en la propiedad Width poner como ancho de columna 60, así como en la imagen:
Ahora dar clic en el botón Aceptar teniendo el sgte formato:
Ahora dar doble clic al formulario y ubicarte en la sgte parte del código y poner lo sgte:
Ahora volver al formulario y dar doble clic al formulario y poner el sgte código:
Ahora volver al formulario y dar doble clic en el ListBox llamado LstRegion y programar lo sgte:
Ahora volver al formulario y dar doble clic en el ListBox llamado LstTerritorio y programar lo sgte:
Ahora volver al formulario y seleccionar el ListView llamado LvEmpleados e ir a sus propiedades y en la cual daremos doble clic en el evento clic.
Al hacer esto se mostrara la ventana de código del ListView, la programación será la sgte:
Ahora volver al formulario y seleccionar el ListView llamado LvOrdenese ir a sus propiedades y en la cual daremos doble clic en el evento clic
Al hacer esto se mostrara la ventana de código del ListView, la programación será la sgte:
Los Procedimiento Almacenados (Store Procedure) son los sgtes:

Go
Set Statistics Time On
Go
Set Language Spanish
Go
Set Quoted_Identifier Off
Go
Set Dateformat DMY
Go
Use Northwind --Base de Datos a trabajar
Go
If Exists(Select Name From SysObjects Where Name='Sp_listarregion'
And Type='P')
Begin
Drop Procedure Sp_Listarregion
End
go
Create Procedure Sp_Listarregion
As
Select RegionID,RegionDescription From Region
Go
Execute Sp_Listarregion
Go
If Exists(Select Name From SysObjects Where Name='sp_listarterritorio'
And Type='p')
Begin
Drop Procedure sp_listarterritorio
End
Go
Create Procedure Sp_ListarTerritorio
@Region Int
As
Select TerritoryID,TerritoryDescription From Territories
Where RegionID=@Region
Go
Execute Sp_ListarTerritorio 1
Go
If Exists(Select Name From SysObjects Where Name='Sp_ListarEmpleados'
And Type='P')
Begin
Drop Procedure Sp_Listarempleados
End
go
Create Procedure Sp_ListarEmpleados
@Territorio Varchar(10)
As
Select et.EmployeeID,(e.LastName+Space(1)+e.FirstName)As Empleados,e.Title,
(Cast(Day(BirthDate)As Varchar(2))+'/'+Cast(Month(BirthDate)As
Varchar(2))+'/'+ Cast(Year(BirthDate)As Varchar(4)))As BirthDate
From employees As e Inner Join EmployeeTerritories As et
On et.EmployeeID=e.EmployeeID
Where et.TerritoryID=@Territorio
Go
Execute Sp_ListarEmpleados '80202'
Go
If Exists(Select Name From Sysobjects Where Name='Sp_MostrarOrdenes'
And Type='P')
Begin
Drop Procedure Sp_Mostrarordenes
End
Go
Create Procedure Sp_MostrarOrdenes
@Empleado Int
As
Select OrderID,(Cast(Day(OrderDate)As
Varchar(2))+'/'+Cast(Month(OrderDate)As Varchar(2))+'/'+
Cast(Year(OrderDate)As varchar(4)))As OrderDate,(Cast(Day(ShippedDate)As
Varchar(2))+'/'+
Cast(Month(ShippedDate)As varchar(2))+'/'+Cast(Year(ShippedDate)As
varchar(4)))As ShippedDate,
ShipCountry,Datediff(d,OrderDate,ShippedDate)As Dias_Envios
From Orders Where EmployeeID=@Empleado
Go
Execute Sp_MostrarOrdenes 7
Go
If Exists(Select Name From Sysobjects Where Name='Sp_MostrarDetalles'
And Type='P')
Begin
Drop Procedure Sp_MostrarDetalles
End
Go
Create Procedure Sp_MostrarDetalles
@OrderID Int
As
Select od.OrderId,ProductName,od.UnitPrice,Quantity,(od.UnitPrice*Quantity)
As Total From Products As p Inner Join [order details] As Od
On p.ProductID=od.ProductID
Where OrderID=@OrderID
Go
Execute Sp_MostrarDetalles 10248

Ahora como queremos ejecutar este formulario, hay que ir al archivo Program.cs y modificar el nombre del formulario el cual queremos que se ejecute, en nuestro caso es el FrmADO5, así como en la imagen:
Ahora hay que ejecutar el formulario, para eso presionar la tecla de función F5, al hacerlo se mostrara el formulario en la cual cuando selecciones una región se mostrara en el segundo ListBox los territorios que pertenecen a esa región, al elegir un territorio se mostrara en el primer ListView los empleados que pertenecen a ese territorio, al elegir un empleado se mostrara en el segundo ListView todas las ordenes de ese empleado, al elegir una orden se mostrara en el DataGridView el detalle de la orden seleccionada, además se deberá mostrar el monto total de la orden seleccionada en el TextBox, así como en la imagen:
Con este sexto y ultimo ejemplo básico tuvo como finalidad el brndarte un panorama de como iniciarte con este lenguaje.

No hay comentarios:

Publicar un comentario