ASP-c#

58
ING. JIMMY ANHUAMÁN LEÓN Taller Desarrollo 2 C#.Net SQL Server

Transcript of ASP-c#

Page 1: ASP-c#

ING. JIMMY ANHUAMÁN LEÓN

Taller Desarrollo 2C# .Net SQL Server

Page 2: ASP-c#

AGENDA:UTILIZANDO CONTROLES.

VALIDACIÓN DE ENTRADA DE DATOS.CREANDO UNA CONECCION PARA BD.

Semana 2

ING. JIMMY ANHUAMÁN LEÓN

Page 3: ASP-c#

Utilizando Controles

I. Usando Paginas Code-Behind

II. Utilizando Controles Servidor

III. Eventos para controles de Servidor Web

IV. Usando Eventos de Paginas

ING. JIMMY ANHUAMÁN LEÓN

Page 4: ASP-c#

I. Usando Paginas Code-Behind

1. Como Implementar Código

2. Escribiendo Código Inline

3. Que son Páginas Code-Behind?

4. Entendiendo como Trabajan las Paginas Code-Behind

ING. JIMMY ANHUAMÁN LEÓN

Page 5: ASP-c#

1. Como implementar código

3 Métodos Para Agregar código:

Las paginas Code-behind son las páginas por defecto de Visual Studio.NET

Método Descripció n

Mixto Poner código dentro del mismo Archivo del contenido

Inline Poner código en una sección separada del archivo contenido

Code-Behind Poner código en Archivos Separados

ING. JIMMY ANHUAMÁN LEÓN

Page 6: ASP-c#

2. Escribiendo código Inline

Código y contenido dentro del mismo archivoSecciones diferentes dentro del Archivo para el código y HTML

<HTML><asp:Button id="btn" runat="server"/></HTML><SCRIPT Language="c#" runat="server">

private void btn_Click(object sender, EventArgs e){. . .

}</SCRIPT>

<HTML><asp:Button id="btn" runat="server"/></HTML><SCRIPT Language="c#" runat="server">

private void btn_Click(object sender, EventArgs e){. . .

}</SCRIPT>

ING. JIMMY ANHUAMÁN LEÓN

Page 7: ASP-c#

3. Qué son páginas Code-Behind?

Separación de código del contenido

Los Desarrolladores y Diseñadores de UI pueden trabajar independientemente

Form1.aspxForm1.aspx Form1.aspxForm1.aspx Form1.aspx.csForm1.aspx.cs

<tags><tags> codecode

codecode

Separate filesSingle file

ING. JIMMY ANHUAMÁN LEÓN

Page 8: ASP-c#

4. Como Trabajan las Paginas Code-Behind

Crea Archivos separados para usar interface de usuario y interface lógica

Usa La directiva @ Page para enlazar los 2 archivos

Pre-compile o JIT-compile

Page1.aspx Page1.aspx.cs

ING. JIMMY ANHUAMÁN LEÓN

Page 9: ASP-c#

II. Utilizando Controles Servidor

1. Que es Controles Servidor?

2. Tipos de Controles de Servidor

3. Guardando Estados del Control

4. Controles Servidor HTML

5. Controles Servidor Web

6. Seleccionando los controles apropiados

ING. JIMMY ANHUAMÁN LEÓN

Page 10: ASP-c#

1. Que es Controles Servidor?

Runat="server"

Los Eventos ocurren sobre el servidor

Guardan Estados

Tiene funcionalidad propia

Modelo de Objeto Común

Todos tienen Atributos Id y Te xtCrea HTML para browser específico

<asp:Button id="Button1" runat="serverText="Submit"/>

<asp:Button id="Button1" runat="serverText="Submit"/>

ING. JIMMY ANHUAMÁN LEÓN

Page 11: ASP-c#

2. Tipos de Controles de Servidor

Controles Servidor HTML

Controles Servidor WebControles Intrinsicos

Controles de Validación

Controles Enriquecidos

Controles de Listas Enlazables

Controles Web Internet Explorer

ING. JIMMY ANHUAMÁN LEÓN

Page 12: ASP-c#

3. Guardando Estados del Control

< %@ Page En able Vie w State = "False " %>< asp:Lis tBo x id= "Lis tNam e "

En able Vie w State = "true " run at= "se rve r">

</asp:ListBox>

< %@ Page En able Vie w State = "False " %>< asp:Lis tBo x id= "Lis tNam e "

En able Vie w State = "true " run at= "se rve r">

</asp:ListBox>

<input type="hidden" name="__VIEWSTATE"

value="dDwtMTA4MzE0MjEwNTs7Pg==" />

<input type="hidden" name="__VIEWSTATE"

value="dDwtMTA4MzE0MjEwNTs7Pg==" />

ING. JIMMY ANHUAMÁN LEÓN

Page 13: ASP-c#

4. Controles Servidor HTML

<input type="text" id="txtName runat="server" /><input type="text" id="txtName runat="server" />

ING. JIMMY ANHUAMÁN LEÓN

Page 14: ASP-c#

5. Controles Servidor Web

<asp:TextBox id="TextBox1runat="server">Text_to_Display

</asp:TextBox>

<asp:TextBox id="TextBox1runat="server">Text_to_Display

</asp:TextBox>

<input name="TextBox1" type="text" value="Text_to_Display"Id="TextBox1"/>

<input name="TextBox1" type="text" value="Text_to_Display"Id="TextBox1"/>

ING. JIMMY ANHUAMÁN LEÓN

Page 15: ASP-c#

6. Seleccionando los controles apropiados

ING. JIMMY ANHUAMÁN LEÓN

Page 16: ASP-c#

Demo

ING. JIMMY ANHUAMÁN LEÓN

Page 17: ASP-c#

III. Eventos para controles de Servidor Web

1. Que es un Evento?

2. Eventos Client-Side

3. Eventos Server-Side

4. Creando Eventos

5. Interactuando con controles dentro de eventos

ING. JIMMY ANHUAMÁN LEÓN

Page 18: ASP-c#

1. Que es un Evento?

Una Acción en respuesta para una interacción del usuario con los controles de la Pagina Web

ING. JIMMY ANHUAMÁN LEÓN

Page 19: ASP-c#

2. Eventos Client-Side

language

ING. JIMMY ANHUAMÁN LEÓN

Page 20: ASP-c#

3. Eventos Server-Side

ING. JIMMY ANHUAMÁN LEÓN

Page 21: ASP-c#

4. Creando Eventos

Visual Studio .NET declara variables y crea un procedimiento enlazado a un evento

protected System.Web.UI.WebControls.Button cmd1;

private void InitializeComponent(){

this.cmd1.Click += new System.EventHandler(this.cmd1_Click);this.Load += new System.EventHandler(this.Page_Load);

}private void cmd1_Click(object s, System.EventArgs e){}

protected System.Web.UI.WebControls.Button cmd1;

private void InitializeComponent(){

this.cmd1.Click += new System.EventHandler(this.cmd1_Click);this.Load += new System.EventHandler(this.Page_Load);

}private void cmd1_Click(object s, System.EventArgs e){}

ING. JIMMY ANHUAMÁN LEÓN

Page 22: ASP-c#

5. Controles dentro de eventos

Lee las propiedades del control del Servidor Web

Responde a otros controles de servidor web

strGreeting = "Hello " + txtName.Text;strGreeting = "Hello " + txtName.Text;

lblGreeting.Text = "new text";lblGreeting.Text = "new text";

ING. JIMMY ANHUAMÁN LEÓN

Page 23: ASP-c#

IV. Usando Eventos de Paginas

1. Entiendiendo el ciclo de vida de los ventos de una Pagina

2. Manejando el Evento Page.IsPostback

3. Enlazando 2 controles juntos

ING. JIMMY ANHUAMÁN LEÓN

Page 24: ASP-c#

1. Entiendiendo el ciclo de vida de los Eventos de una Pagina

Page is disposed

Page_LoadPage_Load

Page_UnloadPage_Unload

Textbox1_ChangedTextbox1_Changed

Button1_ClickButton1_Click

Page_InitPage_Init

Change EventsChange Events

Action EventsAction Events

ING. JIMMY ANHUAMÁN LEÓN

Page 25: ASP-c#

2. Manejando el Evento Page.IsPostback

Page_ Load se dispara sobre cada request

Usa Page .Is Po s tBack para la ejecución de lógica condicional

Page.IsPostBack impide recargar para cada postback

private void Page_Load(System.Object s, System.EventArgs e){if (!Page.IsPostBack){

//executes only on initial page load}//this code executes on every request

}

private void Page_Load(System.Object s, System.EventArgs e){if (!Page.IsPostBack){

//executes only on initial page load}//this code executes on every request

}

ING. JIMMY ANHUAMÁN LEÓN

Page 26: ASP-c#

3. Enlazando 2 controles juntos

Enlazando un control con otro es util para tomar valores desde una lista

Data binding

<asp:DropDownList id="lstOccupation autoPostBack="True" runat="server" >You selected: <asp:Label id="lblSelectedValue" Text="<%# lstOccupation.SelectedItem.Text %>" runat="server" />

<asp:DropDownList id="lstOccupation autoPostBack="True" runat="server" >You selected: <asp:Label id="lblSelectedValue" Text="<%# lstOccupation.SelectedItem.Text %>" runat="server" />

private void Page_Load(Object s, EventArgse){

lblSelectedValue.DataBind();}

private void Page_Load(Object s, EventArgse){

lblSelectedValue.DataBind();}

ING. JIMMY ANHUAMÁN LEÓN

Page 27: ASP-c#

demo

ING. JIMMY ANHUAMÁN LEÓN

Page 28: ASP-c#

Validación de Entrada de Datos

I. Visión General

II. Usando Controles de Validación

III. Paginas de Validación

ING. JIMMY ANHUAMÁN LEÓN

Page 29: ASP-c#

I. Visión General

1. Que es validación de ingreso de datos?

2. Validación Client-Side y Server-Side

3. Controles de validación ASP.NET

ING. JIMMY ANHUAMÁN LEÓN

Page 30: ASP-c#

1. Que es validación de ingreso de datos?

ING. JIMMY ANHUAMÁN LEÓN

Page 31: ASP-c#

2. Validación Client-Side y Server-Side

Valid?

Valid?

User EntersData

No

No

Yes

Yes

Error Message

Client

Server

Web ApplicationProcessed

ING. JIMMY ANHUAMÁN LEÓN

Page 32: ASP-c#

3. Controles de validación ASP.NET

ASP.NET Provee controles de validación para :

Comparar valores

Comparar para una formula personalizada

Comparar rangos

Compara para una expresión de patrón regular

Requiere usar ingreso de usuario

Resume los controles de validación sobre una pagina

ING. JIMMY ANHUAMÁN LEÓN

Page 33: ASP-c#

II. Usando Controles de Validación

1. Agregando controles de validación para un formulario web

2. Posicionando controles de validación sobre un formulario web

3. Combinando controles de validación

4. Controles de Validación de Ingreso Datos

5. Usando el control RegularExpressionValidator

6. Usando el control CustomValidator

ING. JIMMY ANHUAMÁN LEÓN

Page 34: ASP-c#

1. Agregando controles de validación

Agrega un control de validación.

Select the input control to validate

Set validation properties

<asp:Type_of_Validatorid="Validator_id"runat="server"ControlToValidate="txtName"ErrorMessage="Message_for_error_summary"Display="static|dynamic|none"Text="Text_to_display_by_input_control">

</asp:Type_of_Validator>

<asp:Type_of_Validatorid="Validator_id"runat="server"ControlToValidate="txtName"ErrorMessage="Message_for_error_summary"Display="static|dynamic|none"Text="Text_to_display_by_input_control">

</asp:Type_of_Validator>

<asp:TextBox id="txtName" runat="server" /><asp:TextBox id="txtName" runat="server" />

111

222

333

ING. JIMMY ANHUAMÁN LEÓN

Page 35: ASP-c#

2. Posicionando controles de validación

Crear mensaje de error

Seleccionando Mode Display

Static

Dynamic

ING. JIMMY ANHUAMÁN LEÓN

Page 36: ASP-c#

3. Combinando controles de validación

Puedes tener multiple controles de validación sobre un mismo control de ingreso de datos.

El Control RequiredFieldValidator solo chequea controles en blanco.

ING. JIMMY ANHUAMÁN LEÓN

Page 37: ASP-c#

4. Controles de Validación

RequiredFieldValidator

In itialValueCompareValidator

Value To Co m pare or Co n tro lTo Co m pareTypeOpe rato r

RangeValidator

Min im um ValueMaxim um ValueType

ING. JIMMY ANHUAMÁN LEÓN

Page 38: ASP-c#

5. Control RegularExpressionValidator

Usado cuando el ingreso de datos debe estar conformado por un predeterminado patrón.

Visual Studio .NET incluye patrones para:

Número de teléfonos.

Código postales.

Direcciones E-mail

<asp:RegularExpressionValidator ControlToValidate="US_PhoneNumber"ValidationExpression="((\ (\ d{3}\ ) ?)|(\ d{3}-))?\ d{3}-\ d{4} ">*</asp:RegularExpressionValidator >

<asp:RegularExpressionValidator ControlToValidate="US_PhoneNumber"ValidationExpression="((\ (\ d{3}\ ) ?)|(\ d{3}-))?\ d{3}-\ d{4} ">*</asp:RegularExpressionValidator >

ING. JIMMY ANHUAMÁN LEÓN

Page 39: ASP-c#

Expresiones Regulares

Las expresiones regulares son una serie de carácteres que forman un patrón, normalmente representativo de otro grupo de caracteres mayor, de tal forma que podemos comparar el patrón con otro conjunto de caracteres para ver las coincidencias.

Las expresiones regulares estan disponibles en casi cualquier lenguaje de programación, pero aunque su sintaxis es relativamente uniforme, cada lenguaje usa su propio dialecto.

Si es la primera vez que te acercas al concepto de expresiones regulares (regex para abreviar) te animará saber que seguro que ya las has usado, aún sin saberlo, al menos en su vertiente mas básica

ING. JIMMY ANHUAMÁN LEÓN

Page 40: ASP-c#

Expresiones Regulares

Por ejemplo, cuando en una ventana DOS ejecutamos dir *.*, para obtener un listado de todos los archivos de un directorio, estamos utilizando el concepto de expresiones regulares , donde

el patrón * coincide con cualquier cadena de caracteres.

Un Ejemplillo :

ta este es nuestro patrón. Si lo comparamos con: ta coincide tades2 coincide tades1 coincide tabada coincide mita coincide batare coincide

atmo no coincide

ING. JIMMY ANHUAMÁN LEÓN

Page 41: ASP-c#

Expresiones Regulares

ALTERNACION: Una barra vertical separa las alternativas. Por ejemplo, "marrón|castaño" casa con marrón o castaño.

CUANTIFICACIÓN: Un cuantificador tras un carácter especifica la frecuencia con la que éste puede ocurrir. Los cuantificadores más comunes son +, ? y *.

+ El signo más indica que el carácter al que sigue debe aparecer al m e n o s un a ve z. Po r e je m plo , "ho + la" de scribe e l co n jun to infinito hola, hoola, hooola, hoooola, etcétera.

? El signo de interrogación indica que el carácter al que sigue puede aparecer como mucho una vez. Por ejemplo, "ob?scuro" casa con oscuro y obscuro

* El asterisco indica que el carácter al que sigue puede aparecer cero, una, o más veces. Por ejemplo, "0*42" casa con 42, 042, 0042, 00042, etcétera

ING. JIMMY ANHUAMÁN LEÓN

Page 42: ASP-c#

Expresiones Regulares

AGRUPACION: Los paréntesis pueden usarse para definir el ámbito y precedencia de los demás operadores. Por ejemplo, "(p| m)adre" es lo mismo que "padre| madre

EL PUNTO . :El punto es interpretado por el motor de búsqueda como cualquier otro carácter excepto los caracteres que representan un salto de línea

ING. JIMMY ANHUAMÁN LEÓN

Page 43: ASP-c#

Expresiones Regulares

Caracteres Especiales:

Descripció n

\ r Regreso de al inicio

\ n Nueva línea

\ e Tecla Escape

\ d Representa un dígito

\ w Cualquier caracter alfanumérico

\ s Espacio en blanco

\ D Representa cualquier caracter que no sea un dígito

\ W Representa cualquier caracter no alfanumérico

ING. JIMMY ANHUAMÁN LEÓN

Page 44: ASP-c#

Expresiones Regulares

Descripció n

[ ] Útil cuando es necesario buscar uno de un grupo de caracteres. Dentro de los corchetes es posible utilizar el guión "-" para especificar rangos de caracteres: "[\ dA-Fa-f] Numeros Hexa.

$ Representa el final de la cadena de caracteres o el final de la línea.

^ Tiene una doble funcionalidad:1. Carácter individual: representa el inicio de la cadena "^[a-z]Inicio con una letra minuscula.2. Junto con los corchetes: Negación del patrón, ejemplo : [^\ w ] cualquier carácter que no sea alfanumérico o un espacio.

{ num} Indica numero de ocurrencias del patrón se tiene el siguiente formato {n} {n,m} {n,}

ING. JIMMY ANHUAMÁN LEÓN

Page 45: ASP-c#

6. Usando el control CustomValidator

Puede validar sobre client-side or server-side.

Clie n tValidatio n Fun ctio nOn Se rve rValidate

Validate with:

Formula

Data

COM objects

Web Service

ING. JIMMY ANHUAMÁN LEÓN

Page 46: ASP-c#

III. Paginas de Validación

1. Usando la Propiedad Page.IsValid

2. Usando el Control ValidationSummary

ING. JIMMY ANHUAMÁN LEÓN

Page 47: ASP-c#

1. Usando la Propiedad Page.IsValid

Obtiene todas las validaciones de los controles.

Private void cmdSubmit_Click(Object s, EventArgs e) {

if (Page.IsValid){Message.Text = "Page is valid! ;' Perform database updates or other logic here

}}

Private void cmdSubmit_Click(Object s, EventArgs e) {

if (Page.IsValid){Message.Text = "Page is valid! ;' Perform database updates or other logic here

}}

ING. JIMMY ANHUAMÁN LEÓN

Page 48: ASP-c#

2. Control ValidationSummary

Congrega los mensajes de errores de todos los controles de validación sobre la página

Puede mostrar el texto y los mensajes de errores

Usa Text="*" para indicar la ubicación del error

<asp:ValidationSummary id="valSummary runat="server"HeaderText="These errors were found:"ShowSummary="True" DisplayMode="List"/>

<asp:ValidationSummary id="valSummary runat="server"HeaderText="These errors were found:"ShowSummary="True" DisplayMode="List"/>

ING. JIMMY ANHUAMÁN LEÓN

Page 49: ASP-c#

Demo

ING. JIMMY ANHUAMÁN LEÓN

Page 50: ASP-c#

Creando una Coneccion para BD

1. Seguridad de SQL Server

2. Usando el Servidor Explorer para Generar una Conección

3. Creando una coneccíón

4. Modelo de Objetos del DataAdapter

5. Generando un DataSet

ING. JIMMY ANHUAMÁN LEÓN

Page 51: ASP-c#

1. Seguridad de SQL Server

SQL ServerSQL ServerWeb ServerWeb Server

SQL ServerSQL Server

Web ServerWeb Server

ING. JIMMY ANHUAMÁN LEÓN

Page 52: ASP-c#

2. Usando el Servidor Explorer para Generar una Conección

Creas una nueva connección de datos, arrastrando una Tabla desde el Explorador de Servidores

ING. JIMMY ANHUAMÁN LEÓN

Page 53: ASP-c#

3. Creando una conección

Usando SqlConnection

Parametros de configuración de la cadena de conexión.

Connection timeoutData sourceInitial catalogIntegrated security = false

User ID

Password

String strConn = "data source=localhost; " & _"initial catalog=northwind; integrated security=true"

Dim conn As New SqlConnection(strConn)

String strConn = "data source=localhost; " & _"initial catalog=northwind; integrated security=true"

Dim conn As New SqlConnection(strConn)

ING. JIMMY ANHUAMÁN LEÓN

Page 54: ASP-c#

4. Creando una conexión en WebConfig

Sección de configuración

<configuration> <connectionStrings>

<add name="northwind" connectionString= Data Source=(local);Initial Catalog=CursoNetEnosa; Integrated Security=true;" providerName="System.Data.SqlClient" / >

</connectionStrings> </configuration>

ING. JIMMY ANHUAMÁN LEÓN

Page 55: ASP-c#

5. Utilizando una conexion de WebConfig

Acceso de lectura/ escritura a especificaciones de configuración.Ejemplo

ASP.NET 2.0 provee una API de configuración mas rica que versiones anteriores, facilitando la lectura y escritura de los archivos de configuración desde el código. Este ejemplo muestra como recuperar el valor de una cadena de conexión a la base de datos, declarada en un web.config.

SqlConnection connection = new SqlConnection( ConfigurationManager.ConnectionStrings[

conTades2"].ConnectionString);

ING. JIMMY ANHUAMÁN LEÓN

Page 56: ASP-c#

DataBaseHelper

BinaryIntellect DataBaseHelper es un componente de acceso a datos de código abierto que simplifica la ejecución de consultas y procedimientos almacenados.

Este esta desarrollado usando la nueva clase factoria de ADO.NET 2.0 y permite que escribir el proveedor como código neutral.

Page 57: ASP-c#

DataBaseHelper

Page 58: ASP-c#

This document was created with Win2PDF available at http://www.daneprairie.com.The unregistered version of Win2PDF is for evaluation or non-commercial use only.