lab 02

22
Desarrollando Aplicaciones con Microsoft ASP.NET 2.0 Enlace a datos desde nuestra Aplicación

Upload: freddy-chilon-vargas

Post on 25-Sep-2015

219 views

Category:

Documents


0 download

DESCRIPTION

asp

TRANSCRIPT

  • Desarrollando Aplicaciones con Microsoft ASP.NET 2.0 Enlace a datos desde nuestra Aplicacin

  • Construccin de Sitios Web Dinmicos con VISUAL STUDIO 2005 y SQL Server 2005 Enterprice Global Solution

    LABORATORIO: Accesando a datos usando ADO.NET y

    los nuevos Controles DataSource En este laboratorio, usted podr mostrar la informacin de una base de datos usando

    los controles DataSource y ADO.NET. Adems implementara el mantenimiento en su

    totalidad de un objeto de negocio. Tendr una pgina para visualizar las ltimas

    noticias del portal, y adems otra pgina donde pueda hacer el mantenimiento de

    estas.

    As es como la pgina se ver en el Internet Explorer al finalizar el laboratorio.

    2Ing. Samuel Mestanza A.

  • Construccin de Sitios Web Dinmicos con VISUAL STUDIO 2005 y SQL Server 2005 Enterprice Global Solution

    EJERCICIO: Accediendo a los datos desde nuestra Aplicacin Web

    Objetivo: En este ejercicio crear la capa de datos de la aplicacin y posteriormente mostrar

    esta informacin usando los nuevos controles, y adems har el mantenimiento de

    los objetos del Negocio.

    Nota: El laboratorio est diseado para trabajar en Visual C#.

    Paso 1: Crear la capa de acceso a datos

    1. En nuestra aplicacin agregaremos una carpeta ASP.NET, App_Code.

    En la carpeta App_Code, agregamos una nueva clase llamada:

    NoticiaBE.cs. A la cual agregaremos el siguiente cdigo:

    Atributos private int codigo; private string titulo; private string descripcion; rivate DateTime fechaCreacion; private string vermasLink;

    Propiedades public int Codigo { get { return codigo; } set { codigo = value; } } public string Titulo { get { return titulo; } set { titulo = value; } } public string Descripcion { get { return descripcion; } set { descripcion = value; } } public DateTime FechaCreacion { get { return fechaCreacion; } set { fechaCreacion = value; } } public string VermasLink { get { return vermasLink; } set { vermasLink = value; } }

    3

    2. Antes de crear nuestra clase de acceso a datos agregaremos nuestra

    cadena conexin al archivo de configuracin web.config:

    Ing. Samuel Mestanza A.

  • Construccin de Sitios Web Dinmicos con VISUAL STUDIO 2005 y SQL Server 2005 Enterprice Global Solution

    4

    3. Ahora en la carpeta App_Code, agregamos una nueva clase llamada:

    NoticiaDA.cs. A la cual agregaremos el siguiente cdigo:

    Mtodo para traer todas las noticias //metodo para trear las ultimas noticias public static DataTable TraerNoticias() { //recuperando cadena de conexion string strCN = ConfigurationManager. ConnectionStrings["cnTampico"].ConnectionString; //configurando el dataAdapter SqlDataAdapter daNoticias = new SqlDataAdapter("usp_TraeNoticias", strCN); //ahora creando el dAtaSet DataSet ds = new DataSet(); //llenando el dataSet daNoticias.Fill(ds); //retornando un datatable return ds.Tables[0]; }

    Mtodo para traer una noticia //metodo para traer una Noticia public static DataTable TraerNoticia(int Codigo) { //recuperando cadena de conexion string strCN = ConfigurationManager. ConnectionStrings["cnTampico"].ConnectionString; //creando un nuevo comando SqlCommand cmd = new SqlCommand("usp_TraeNoticia", new SqlConnection(strCN)); SqlParameter param = new SqlParameter("@Codigo",SqlDbType.Int); param.Value = Codigo; param.Direction = ParameterDirection.Input; cmd.Parameters.Add(param); cmd.CommandType = CommandType.StoredProcedure; //ahora conectadome y trayendo la data SqlDataAdapter daNoticias = new SqlDataAdapter(cmd); //ahora recuperando mi DAtaSet

    Ing. Samuel Mestanza A.

  • Construccin de Sitios Web Dinmicos con VISUAL STUDIO 2005 y SQL Server 2005 Enterprice Global Solution

    5

    DataSet ds = new DataSet(); //lleando daNoticias.Fill(ds); //retornando un datatable return ds.Tables[0]; }

    Mtodos para Insertar Noticias //para insertar public static void InsertarNoticia(string Titulo, string Descripcion, DateTime FechaCreacion, string VermasLink) { //recuperando cadena de conexion string strCN = ConfigurationManager. ConnectionStrings["cnTampico"].ConnectionString; //creando el comando SqlCommand cmdIns = new SqlCommand(); cmdIns.Connection = new SqlConnection(strCN); //preprando los parametros SqlParameter param = new SqlParameter( "@Titulo", SqlDbType.VarChar, 100); param.Direction = ParameterDirection.Input; param.Value = Titulo; //agregando el parametro al SP cmdIns.Parameters.Add(param); //otro parametro param = new SqlParameter( "@Descripcion", SqlDbType.VarChar, 4000); param.Direction = ParameterDirection.Input; param.Value = Descripcion; cmdIns.Parameters.Add(param); //otro parametro param = new SqlParameter( "@FechaCreacion", SqlDbType.DateTime); param.Direction = ParameterDirection.Input; param.Value = FechaCreacion; cmdIns.Parameters.Add(param); //otro parametro param = new SqlParameter( "@VermasLink", SqlDbType.VarChar,100); param.Direction = ParameterDirection.Input; param.Value = VermasLink; cmdIns.Parameters.Add(param); //insertando cmdIns.CommandText = "usp_InsertarNoticia"; cmdIns.CommandType = CommandType.StoredProcedure;

    Ing. Samuel Mestanza A.

  • Construccin de Sitios Web Dinmicos con VISUAL STUDIO 2005 y SQL Server 2005 Enterprice Global Solution

    6

    //ejecutando cmdIns.Connection.Open(); cmdIns.ExecuteNonQuery(); //cerrrando la conexion cmdIns.Connection.Close(); } //para insertar public static void InsertarNoticia(NoticiaBE objNoticia) { InsertarNoticia(objNoticia.Titulo, objNoticia.Descripcion, objNoticia.FechaCreacion, objNoticia.VermasLink); }

    Mtodo para Actualizar las noticias //para Actualizar public static void ActualizarNoticia(int Codigo, string Titulo, string Descripcion, DateTime FechaCreacion, string VermasLink) { //recuperando cadena de conexion string strCN = ConfigurationManager. ConnectionStrings["cnTampico"].ConnectionString; //creando el comando SqlCommand cmdAct = new SqlCommand(); cmdAct.Connection = new SqlConnection(strCN); //preprando los parametros SqlParameter param = new SqlParameter( "@Codigo", SqlDbType.Int); param.Direction = ParameterDirection.Input; param.Value = Codigo; cmdAct.Parameters.Add(param); //titulo param = new SqlParameter( "@Titulo", SqlDbType.VarChar, 100); param.Direction = ParameterDirection.Input; param.Value = Titulo; cmdAct.Parameters.Add(param); //otro parametro param = new SqlParameter( "@Descripcion", SqlDbType.VarChar, 4000); param.Direction = ParameterDirection.Input; param.Value = Descripcion; cmdAct.Parameters.Add(param); //otro parametro param = new SqlParameter( "@FechaCreacion", SqlDbType.DateTime); param.Direction = ParameterDirection.Input;

    Ing. Samuel Mestanza A.

  • Construccin de Sitios Web Dinmicos con VISUAL STUDIO 2005 y SQL Server 2005 Enterprice Global Solution

    7

    param.Value = FechaCreacion; cmdAct.Parameters.Add(param); //otro parametro param = new SqlParameter( "@VermasLink", SqlDbType.VarChar, 100); param.Direction = ParameterDirection.Input; param.Value = VermasLink; //agregando el parametro al SP cmdAct.Parameters.Add(param); //ahora si arman el SP e insertando cmdAct.CommandText = "usp_ActualizarNoticia"; cmdAct.CommandType = CommandType.StoredProcedure; cmdAct.Connection.Open(); //ejecutando cmdAct.ExecuteNonQuery(); //cerrrando la conexion cmdAct.Connection.Close(); } //actualizar NOTICAS con Objetos public static void ActualizarNoticia(NoticiaBE objNoticia) { ActualizarNoticia(objNoticia.Codigo, objNoticia.Titulo, objNoticia.Descripcion, objNoticia.FechaCreacion, objNoticia.VermasLink); }

    Mtodo para Eliminar noticias //para eliminar public static void EliminarNoticia(int Codigo) { //recuperando cadena de conexion string strCN = ConfigurationManager. ConnectionStrings["cnTampico"].ConnectionString; //creando el comando SqlCommand cmdEli = new SqlCommand(); cmdEli.Connection = new SqlConnection(strCN); //preprando los parametros SqlParameter param = new SqlParameter( "@Codigo", SqlDbType.Int); param.Direction = ParameterDirection.Input; param.Value = Codigo; //agregando el parametro al SP cmdEli.Parameters.Add(param); //configurando el SP cmdEli.CommandText = "usp_EliminaNoticia"; cmdEli.CommandType = CommandType.StoredProcedure;

    Ing. Samuel Mestanza A.

  • Construccin de Sitios Web Dinmicos con VISUAL STUDIO 2005 y SQL Server 2005 Enterprice Global Solution

    8

    cmdEli.Connection.Open(); //ejecutando cmdEli.ExecuteNonQuery(); //cerrrando la conexion cmdEli.Connection.Close(); }

    4. Ahora ya tenemos lista nuestra capa de acceso a datos.

    5. Asegurarse de haber importado los siguientes namespaces:

    using System; using System.Data; using System.Data.SqlClient; using System.Configuration;

    Ing. Samuel Mestanza A.

  • Construccin de Sitios Web Dinmicos con VISUAL STUDIO 2005 y SQL Server 2005 Enterprice Global Solution

    Paso 2: Usando un DataList para mostrar las ltimas noticias

    1. Agregar un nuevo formulario web a nuestra aplicacin llamado:

    noticias.aspx. Marcamos las opciones: Place code in separate file

    (colocar el cdigo en un archivo separado, CodeFile) y Select master

    page (seleccionar master page, en donde usaremos site.master). Nota:

    De ahora en adelante al agregar un formulario web por defecto debe

    marcar estas dos opciones, salvo que se indique lo contrario.

    9

    2. Ahora en la vista Source de noticias.aspx, y ubicamos el control

    asp:content, dentro de el copiamos el siguiente cdigo:

    Noticias las ultimas noticias:

    Ing. Samuel Mestanza A.

  • Construccin de Sitios Web Dinmicos con VISUAL STUDIO 2005 y SQL Server 2005 Enterprice Global Solution

    10

    3. Ahora nos vamos a la vista Design de noticias.aspx, y agregamos un

    control DataList.

    4. En nuestro control DataList1, nos vamos a la esquina superior derecha

    del control y seleccionamos un nueva datasource:

    Ing. Samuel Mestanza A.

  • Construccin de Sitios Web Dinmicos con VISUAL STUDIO 2005 y SQL Server 2005 Enterprice Global Solution

    5. Seleccionamos nuestro objeto de acceso a datos:

    6. Por ltimo seleccionamos nuestro mtodo para traer las noticias:

    11Ing. Samuel Mestanza A.

  • Construccin de Sitios Web Dinmicos con VISUAL STUDIO 2005 y SQL Server 2005 Enterprice Global Solution

    7. Ahora nos vamos a la vista Source, y dentro del control DataList1,

    copiamos lo siguiente:

    Actualizado el: ver mas...

    8. Ejecutar la Aplicacin, pulsando F5.

    9. Ahora agregaremos un template para poder separar las noticias, dentro

    del DataList1:

    12Ing. Samuel Mestanza A.

  • Construccin de Sitios Web Dinmicos con VISUAL STUDIO 2005 y SQL Server 2005 Enterprice Global Solution

    13

    10. Ahora nuevamente ejecutamos nuestra aplicacin.

    Ing. Samuel Mestanza A.

  • Construccin de Sitios Web Dinmicos con VISUAL STUDIO 2005 y SQL Server 2005 Enterprice Global Solution

    Paso 3: Usando un FormView1 para el mantenimiento de noticias

    1. Agregar un nuevo formulario web a nuestra aplicacin llamado:

    noticias_editar.aspx. 2. Ahora en la vista Source de noticias.aspx, y ubicamos el control

    asp:content, dentro de el copiamos el siguiente cdigo:

    3. Ahora nos vamos a la vista Design de noticias.aspx, y agregamos un

    control FormView.

    4. Desde el control FormView1 agregamos un nuevo ObjectDataSource, y

    seleccionamos nuestra clase NoticiaDA:

    14Ing. Samuel Mestanza A.

  • Construccin de Sitios Web Dinmicos con VISUAL STUDIO 2005 y SQL Server 2005 Enterprice Global Solution

    5. Ahora asociamos a nuestro objectdatasource1 todos los mantenimientos

    que necesitemos:

    SELECT: Traer los datos de la noticia que ser editada.

    15Ing. Samuel Mestanza A.

  • Construccin de Sitios Web Dinmicos con VISUAL STUDIO 2005 y SQL Server 2005 Enterprice Global Solution

    UPDATE: Actualizar noticias

    INSERT: Insertar una nueva noticia.

    16Ing. Samuel Mestanza A.

  • Construccin de Sitios Web Dinmicos con VISUAL STUDIO 2005 y SQL Server 2005 Enterprice Global Solution

    DELETE: Para eliminar un producto deseado.

    17Ing. Samuel Mestanza A.

  • Construccin de Sitios Web Dinmicos con VISUAL STUDIO 2005 y SQL Server 2005 Enterprice Global Solution

    En la siguiente ventana debemos seleccionar el parmetro para el mtodo

    SELECT. En el combo Parameter source, seleccionamos QueryString,

    en la caja de texto QueryStringField ingresamos Codigo.

    6. En la vista Source de noticias_editar.aspx, y en el ObjectDataSource1

    reemplazamos el contenido del parmetro DeleteParameters por una

    copia del contenido del parmetro SelectParameters:

    18

    7. Ahora dentro del control FormView copiamos el siguiente template para la

    insercin:

    Insertar Noticia Ingresa los datos de la noticia

  • Construccin de Sitios Web Dinmicos con VISUAL STUDIO 2005 y SQL Server 2005 Enterprice Global Solution

    19

    alt="cancelar" /> Titulo de la Noticia: Descripcion: Link: Fecha de Noticia: Y el template para la actualizacin:

    Ing. Samuel Mestanza A.

  • Construccin de Sitios Web Dinmicos con VISUAL STUDIO 2005 y SQL Server 2005 Enterprice Global Solution

    20

    Insertar Noticia Ingresa los datos de la noticia Titulo de la Noticia: Descripcion: Link: Fecha de Noticia:

    Ing. Samuel Mestanza A.

  • Construccin de Sitios Web Dinmicos con VISUAL STUDIO 2005 y SQL Server 2005 Enterprice Global Solution

    21

    8. Ahora en el control FormView1, en la vista Source, agregamos los

    siguientes atributos al control:

    DataKeyNames="Codigo" DefaultMode="Edit"

    9. En la directiva @Page de la misma pgina, noticias_editar.aspx

    agregamos el siguiente atributo:

    ValidateRequest="false" 10. Ahora nos vamos al codigo del formulario web noticias_editar.aspx,

    noticias_editar.aspx.cs y agregamos el siguiente cdigo al evento Load

    del objeto Page:

    if (!IsPostBack) { object o = Request.QueryString["Action"]; if (o != null) { string action = System.Convert.ToString(o).ToLower(); if (action == "nuevo") { FormView1.ChangeMode(FormViewMode.Insert); } if (action == "eliminar") { ObjectDataSource1.DataObjectTypeName = ""; ObjectDataSource1.Delete(); Response.Redirect("noticias.aspx"); } } }

    11. En el mismo formulario web, ahora nos vamos al evento ItemInserted, e

    ItemUpdated, del control FormView1, e insertamos el siguiente cdigo:

    12. Ahora regresamos a noticias.aspx y nos vamos a la vista source, y

    buscamos y reemplazamos el siguiente cdigo:

    Por el siguiente cdigo:

    Inserta una nueva noticia: insertar

    Ing. Samuel Mestanza A.

  • Construccin de Sitios Web Dinmicos con VISUAL STUDIO 2005 y SQL Server 2005 Enterprice Global Solution

    Ing. Samuel Mestanza A.

    22

    13. Ahora dentro del DataList1, en noticias.aspx, agregamos el siguiente

    codigo despus de mostrar el titulo de la noticia:

    14. Ahora ejecutamos nuestra Aplicacin para verificar la funcionalidad.

    15. Por ltimo en la directiva @Page, del formulario web

    noticias_editar.aspx, agregamos el siguiente atributo:

    Theme="miTema" 16. Ahora ejecutamos nuevamente nuestra aplicacin.