You are on page 1of 58

Taller Desarrollo 2 C# .

Net SQL Server


ING. JIMMY ANHUAMN LEN

Sem ana 2
AGEN D A:
U TILIZAN D O CON TROLES. VALID ACIN D E EN TRAD A D E D ATOS. CREAN D O U N A CON ECCION PARA BD .

ING. JIMMY ANHUAMN LEN

Utilizando Controles
I. II. III. IV.

Usando Paginas Code-Behind Utilizando Controles Servidor Eventos para controles de Servidor Web Usando Eventos de Paginas

ING. JIMMY ANHUAMN LEN

I. Usando Paginas Code-Behind


1. 2. 3. 4.

Como Implementar Cdigo Escribiendo Cdigo Inline Que son Pginas Code-Behind? Entendiendo como Trabajan las Paginas CodeBehind

ING. JIMMY ANHUAMN LEN

1. Com o im plem entar cdigo


3 Mtodos Para Agregar cdigo:
M todo Mixto Inline Code-Behind Descripci n Poner cdigo dentro del mismo Archivo del contenido Poner cdigo en una seccin separada del archivo contenido Poner cdigo en Archivos Separados

Las paginas Code-behind son las pginas por defecto de Visual Studio.NET

ING. JIMMY ANHUAMN LEN

2. Escribiendo cdigo Inline


Cdigo y contenido dentro del m ism o archivo Secciones diferentes dentro del Archivo para el cdigo y HTML
<HTML> <HTML> <asp:Button id="btn" runat="server"/> <asp:Button id="btn" runat="server"/> </HTML> </HTML> <SCRIPT Language="c#" runat="server"> <SCRIPT Language="c#" runat="server"> private void btn_Click(object sender, EventArgs e) private void btn_Click(object sender, EventArgs e) { { . . . . . . } } </SCRIPT> </SCRIPT>
ING. JIMMY ANHUAMN LEN

3. Qu son pginas Code-Behind?


Separacin de cdigo del contenido Los Desarrolladores y Diseadores de UI pueden trabajar independientemente
Single file Separate files

code <tags>
Form1.aspx

<tags>
Form1.aspx

code
Form1.aspx.cs

ING. JIMMY ANHUAMN LEN

4. Com o Trabajan las Paginas Code-Behind


Crea Archivos separados para usar interface de usuario y interface lgica Usa La directiva @ Page para enlazar los 2 archivos Pre-compile o JIT-compile Page1.aspx Page1.aspx.cs

ING. JIMMY ANHUAMN LEN

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 ANHUAMN LEN

1. Que es Controles Servidor?


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

Runat="server" Los Eventos ocurren sobre el servidor Guardan Estados Tiene funcionalidad propia Modelo de Objeto Com n Todos tienen Atributos Id y Te xt Crea HTML para browser especfico
ING. JIMMY ANHUAMN LEN

2. Tipos de Controles de Servidor Controles Servidor HTML Controles Servidor Web


Controles Intrinsicos Controles de Validacin Controles Enriquecidos Controles de Listas Enlazables Controles Web Internet Explorer

ING. JIMMY ANHUAMN LEN

3. Guardando Estados del Control

<input type="hidden" name="__VIEWSTATE" <input type="hidden" name="__VIEWSTATE" value="dDwtMTA4MzE0MjEwNTs7Pg==" /> value="dDwtMTA4MzE0MjEwNTs7Pg==" />

< %@ Page En able Vie w State = "Fals e " %> < %@ Page En able Vie w State = "Fals e " %> < as p :Lis tBo x id = "Lis tN am e " < as p :Lis tBo x id = "Lis tN am e " En able Vie w State = "tru e " ru n at= "s e rve r"> En able Vie w State = "tru e " ru n at= "s e rve r"> </asp:ListBox> </asp:ListBox>
ING. JIMMY ANHUAMN LEN

4. Controles Servidor HTML

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

ING. JIMMY ANHUAMN LEN

5. Controles Servidor Web

<asp:TextBox id="TextBox1 <asp:TextBox id="TextBox1 runat="server">Text_to_Display runat="server">Text_to_Display </asp:TextBox> </asp:TextBox>

<input name="TextBox1" type="text" <input name="TextBox1" type="text" value="Text_to_Display" value="Text_to_Display" Id="TextBox1"/> Id="TextBox1"/>
ING. JIMMY ANHUAMN LEN

6. Seleccionando los controles apropiados

ING. JIMMY ANHUAMN LEN

Demo

ING. JIMMY ANHUAMN LEN

III. Eventos para controles de Servidor Web


1. 2. 3. 4. 5.

Que es un Evento? Eventos Client-Side Eventos Server-Side Creando Eventos Interactuando con controles dentro de eventos

ING. JIMMY ANHUAMN LEN

1. Que es un Evento?
Una Accin en respuesta para una interaccin del usuario con los controles de la Pagina Web

ING. JIMMY ANHUAMN LEN

2. Eventos Client-Side

lan gu age

ING. JIMMY ANHUAMN LEN

3. Eventos Server-Side

ING. JIMMY ANHUAMN LEN

4. Creando Eventos
Visual Studio .NET declara variables y crea un procedim iento enlazado a un evento
protected System.Web.UI.WebControls.Button cmd1; protected System.Web.UI.WebControls.Button cmd1; private void InitializeComponent() private void InitializeComponent() { { this.cmd1.Click += new System.EventHandler(this.cmd1_Click); this.cmd1.Click += new System.EventHandler(this.cmd1_Click); this.Load += new System.EventHandler(this.Page_Load); this.Load += new System.EventHandler(this.Page_Load); } } private void cmd1_Click(object s, System.EventArgs e) private void cmd1_Click(object s, System.EventArgs e) { { } }

ING. JIMMY ANHUAMN LEN

5. Controles dentro de eventos


Lee las propiedades del control del Servidor Web
strGreeting = "Hello " + txtName.Text; strGreeting = "Hello " + txtName.Text;

Responde a otros controles de servidor web


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

ING. JIMMY ANHUAMN LEN

IV. Usando Eventos de Paginas


1. 2. 3.

Entiendiendo el ciclo de vida de los ventos de una Pagina Manejando el Evento Page.IsPostback Enlazando 2 controles juntos

ING. JIMMY ANHUAMN LEN

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

Page_Init Page_Init Page_Load Page_Load


Change Events Action Events

Textbox1_Changed Textbox1_Changed Button1_Click Button1_Click Page_Unload Page_Unload


Page is disposed

ING. JIMMY ANHUAMN LEN

2. Manejando el Evento Page.IsPostback


Page_ Load se dispara sobre cada request Usa Page .Is Po s tBack para la ejecucin de lgica condicional
private void Page_Load(System.Object s, System.EventArgs e) private void Page_Load(System.Object s, System.EventArgs e) { { if (!Page.IsPostBack) if (!Page.IsPostBack) { { //executes only on initial page load //executes only on initial page load Page.IsPostBack impide recargar para cada postback } } //this code executes on every request //this code executes on every request } }

ING. JIMMY ANHUAMN LEN

3. Enlazando 2 controles juntos


Enlazando un control con otro es util para tom ar valores desde una lista
<asp:DropDownList id="lstOccupation autoPostBack="True" <asp:DropDownList id="lstOccupation autoPostBack="True" runat="server" > runat="server" > You selected: <asp:Label id="lblSelectedValue" You selected: <asp:Label id="lblSelectedValue" Text="<%# lstOccupation.SelectedItem.Text %>" Text="<%# lstOccupation.SelectedItem.Text %>" Data binding runat="server" /> runat="server" /> private void Page_Load(Object s, EventArgse) private void Page_Load(Object s, EventArgse) { { lblSelectedValue.DataBind(); lblSelectedValue.DataBind(); } }

ING. JIMMY ANHUAMN LEN

demo

ING. JIMMY ANHUAMN LEN

Validacin de Entrada de Datos


I. II. III.

Visin General Usando Controles de Validacin Paginas de Validacin

ING. JIMMY ANHUAMN LEN

I. Visin General
1. Que es validacin de ingreso de datos? 2. Validacin Client-Side y Server-Side 3. Controles de validacin ASP.NET

ING. JIMMY ANHUAMN LEN

1. Que es validacin de ingreso de datos?

ING. JIMMY ANHUAMN LEN

2. Validacin Client-Side y Server-Side


User Enters Data Valid?
Client Server Yes Error Message No

Valid?
Yes

No

Web Application Processed


ING. JIMMY ANHUAMN LEN

3. Controles de validacin ASP.NET


ASP.NET Provee controles de validacin para : Comparar valores Com parar para una form ula personalizada Comparar rangos Compara para una expresin de patrn regular Requiere usar ingreso de usuario Resum e los controles de validacin sobre una pagina

ING. JIMMY ANHUAMN LEN

II. Usando Controles de Validacin


Agregando controles de validacin para un form ulario web 2. Posicionando controles de validacin sobre un form ulario web 3. Com binando controles de validacin 4. Controles de Validacin de Ingreso Datos 5. Usando el control RegularExpressionValidator 6. Usando el control CustomValidator
1.

ING. JIMMY ANHUAMN LEN

1. Agregando controles de validacin


1 1 2 2 3 3

Agrega un control de validacin. Select the input control to validate Set validation properties
<asp:TextBox id="txtName" <asp:TextBox id="txtName"

runat="server" /> runat="server" />

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

ING. JIMMY ANHUAMN LEN

2. Posicionando controles de validacin


Crear mensaje de error Seleccionando Mode Display Static

Dynamic

ING. JIMMY ANHUAMN LEN

3. Com binando controles de validacin


Puedes tener m ultiple controles de validacin sobre un m ism o control de ingreso de datos. El Control RequiredFieldValidator solo chequea controles en blanco.

ING. JIMMY ANHUAMN LEN

4. Controles de Validacin
RequiredFieldValidator In itialValu e Com pareValidator Valu e To Co m p are or Co n tro lTo Co m p are Typ e Op e rato r RangeValidator Min im u m Valu e Maxim u m Valu e Typ e

ING. JIMMY ANHUAMN LEN

5. Control RegularExpressionValidator
Usado cuando el ingreso de datos debe estar conform ado por un predeterminado patrn. Visual Studio .NET incluye patrones para: Nmero de telfonos. Cdigo postales. Direcciones E-mail
<asp:RegularExpressionValidator <asp:RegularExpressionValidator ControlToValidate="US_PhoneNumber" ControlToValidate="US_PhoneNumber" ValidationExpression="((\ (\ d{3}\ ) ?)|(\ d{3}-))?\ d{3}-\ d{4} " ValidationExpression="((\ (\ d{3}\ ) ?)|(\ d{3}-))?\ d{3}-\ d{4} " >*</asp:RegularExpressionValidator > >*</asp:RegularExpressionValidator >
ING. JIMMY ANHUAMN LEN

Expresiones Regulares
Las expresiones regulares son una serie de carcteres que forman un patrn, norm almente representativo de otro grupo de caracteres m ayor, de tal form a que podem os com parar el patrn con otro conjunto de caracteres para ver las coincidencias. Las expresiones regulares estan disponibles en casi cualquier lenguaje de programacin, pero aunque su sintaxis es relativam ente uniform e, cada lenguaje usa su propio dialecto. Si es la prim era vez que te acercas al concepto de expresiones regulares (regex para abreviar) te anim ar saber que seguro que ya las has usado, an sin saberlo, al menos en su vertiente mas bsica

ING. JIMMY ANHUAMN LEN

Expresiones Regulares
Por ejem plo, cuando en una ventana DOS ejecutam os dir *.*, para obtener un listado de todos los archivos de un directorio, estam os utilizando el concepto de expresiones regulares , donde el patrn * coincide con cualquier cadena de caracteres. Un Ejemplillo : ta este es nuestro patrn. Si lo comparamos con: ta coincide tades2 coincide tades1 coincide tabada coincide mita coincide batare coincide atmo no coincide
ING. JIMMY ANHUAMN LEN

Expresiones Regulares
ALTERNACION: Una barra vertical separa las alternativas. Por ejemplo, "marrn|castao" casa con marrn o castao. CUANTIFICACIN: Un cuantificador tras un carcter especifica la frecuencia con la que ste puede ocurrir. Los cuantificadores m s comunes son +, ? y *.
+ El signo ms indica que el car cter al que sigue debe aparecer al m e n o s u n a ve z. Po r e je m p lo , "h o + la" d e s cribe e l co n ju n to infinito hola, hoola, hooola, hoooola, etc tera. El signo de interrogacin indica que el carcter al que sigue puede aparecer como mucho una vez. Por ejemplo, "ob?scuro" casa con oscuro y obscuro El asterisco indica que el carcter al que sigue puede aparecer cero, una, o m s veces. Por ejemplo, "0*42" casa con 42, 042, 0042, 00042, etctera
ING. JIMMY ANHUAMN LEN

? *

Expresiones Regulares
AGRUPACION: Los parntesis pueden usarse para definir el m bito y precedencia de los dems operadores. Por ejemplo, "(p| m )adre" es lo mismo que "padre| m adre EL PUNTO . :El punto es interpretado por el motor de bsqueda como cualquier otro carcter excepto los caracteres que representan un salto de lnea

ING. JIMMY ANHUAMN LEN

Expresiones Regulares
Caracteres Especiales:
Descripci n \r \n \e \d \w \s \D \W Regreso de al inicio Nueva lnea Tecla Escape Representa un dgito Cualquier caracter alfanumrico Espacio en blanco Representa cualquier caracter que no sea un dgito Representa cualquier caracter no alfanumrico

ING. JIMMY ANHUAMN LEN

Expresiones Regulares
Descripci n [] til cuando es necesario buscar uno de un grupo de caracteres. Dentro de los corchetes es posible utilizar el guin "-" para especificar rangos de caracteres: "[\ dA-Fa-f] Numeros Hexa. Representa el final de la cadena de caracteres o el final de la lnea. Tiene una doble funcionalidad: 1. Carcter individual: representa el inicio de la cadena "^[a-z] Inicio con una letra minuscula. 2. Junto con los corchetes: Negacin del patrn, ejemplo : [^\ w ] cualquier carcter que no sea alfanumrico o un espacio. Indica numero de ocurrencias del patrn se tiene el siguiente formato {n} {n,m} {n,}

$ ^

{ num}

ING. JIMMY ANHUAMN LEN

6. Usando el control Custom Validator


Puede validar sobre client-side or server-side. Clie n tValid atio n Fu n ctio n On Se rve rValid ate Validate with: Formula Data COM objects Web Service

ING. JIMMY ANHUAMN LEN

III. Paginas de Validacin


1. 2.

Usando la Propiedad Page.IsValid Usando el Control ValidationSumm ary

ING. JIMMY ANHUAMN LEN

1. Usando la Propiedad Page.IsValid


Obtiene todas las validaciones de los controles.

Private void cmdSubmit_Click(Object s, EventArgs e) Private void cmdSubmit_Click(Object s, EventArgs e) { { if (Page.IsValid) if (Page.IsValid) { { Message.Text = "Page is valid! ; Message.Text = "Page is valid! ; ' Perform database updates or other logic here ' Perform database updates or other logic here } } } }

ING. JIMMY ANHUAMN LEN

2. Control ValidationSum m ary


Congrega los m ensajes de errores de todos los controles de validacin sobre la pgina Puede m ostrar el texto y los m ensajes de errores Usa Text="*" para indicar la ubicacin del error

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

ING. JIMMY ANHUAMN LEN

Demo

ING. JIMMY ANHUAMN LEN

Creando una Coneccion para BD


1. 2. 3. 4. 5.

Seguridad de SQL Server Usando el Servidor Explorer para Generar una Coneccin Creando una coneccn Modelo de Objetos del DataAdapter Generando un DataSet

ING. JIMMY ANHUAMN LEN

1. Seguridad de SQL Server

Web Server Web Server

SQL Server SQL Server

SQL Server SQL Server Web Server Web Server


ING. JIMMY ANHUAMN LEN

2. Usando el Servidor Explorer para Generar una Coneccin


Creas una nueva conneccin de datos, arrastrando una Tabla desde el Explorador de Servidores

ING. JIMMY ANHUAMN LEN

3. Creando una coneccin


Usando SqlConnection
String strConn = "data source=localhost; " & _ String strConn = "data source=localhost; " & _ "initial catalog=northwind; integrated security=true" "initial catalog=northwind; integrated security=true" Dim conn As New SqlConnection(strConn) Dim conn As New SqlConnection(strConn)

Param etros de configuracin de la cadena de conexin. Connection timeout Data source Initial catalog User ID Integrated security = false Password

ING. JIMMY ANHUAMN LEN

4. Creando una conexin en WebConfig


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

ING. JIMMY ANHUAMN LEN

5. Utilizando una conexion de WebConfig


Acceso de lectura/ escritura a especificaciones de configuracin. Ejemplo SqlConnection connection = new SqlConnection( ConfigurationManager.ConnectionStrings[ conTades2"].ConnectionString); ASP.NET 2.0 provee una API de configuracin mas rica que versiones anteriores, facilitando la lectura y escritura de los archivos de configuracin desde el cdigo. Este ejem plo m uestra com o recuperar el valor de una cadena de conexin a la base de datos, declarada en un web.config.

ING. JIMMY ANHUAMN LEN

DataBaseHelper
BinaryIntellect DataBaseHelper es un componente de acceso a datos de cdigo abierto que sim plifica la ejecucin de consultas y procedimientos alm acenados. Este esta desarrollado usando la nueva clase factoria de ADO.NET 2.0 y perm ite que escribir el proveedor como cdigo neutral.

DataBaseHelper

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.