Entrenamiento en Acceso a Datos con ASP.NET
-
Upload
haaron-gonzalez -
Category
Technology
-
view
1.779 -
download
1
description
Transcript of Entrenamiento en Acceso a Datos con ASP.NET
- 1. ENTRENAMIENTO EN ACCESO ADATOS EXTREMO CON ASP.NETHaarn GonzalezMicrosoft MCP, MCAD, MCT, MCTS yMVP
2. GENERALES Sesin de 4 horas No habr descanso Es un
entrenamiento no una capacitacin Puedes preguntar en cuanto surja
una duda Requieres de Visual Studio 2008 o superior y SQL Express o
superior Esta sesin se esta transmitiendo en lnea y quedara grabada
3. QUE ES LA VINCULACIN DE DATOS ODATABINDINGProceso de carga datos
provenientes de una fuente de datos en un control En .NET los
controles que soportan databindingcuentan con la propiedad
DataSource donde asignamos los datos el mtodo DataBind()para
proceder a cargarlos Para vincular datos en un control ya sea con
cdigo odeclarativamente establecemos la propiedadDataSource e
invocamos el mtodo DataBind() 4. EJERCICIO 1 CARGANDO
DATOSPROGRAMATICAMENTE1. Creamos proyecto de tipo Web Site en
Visual Studio2. Agregamos una pagina aspx3. Arrastramos un control
GridView4. Programamos cdigo para invocar la fuente de datos en el
evento Page_Load 5. Dim connectString As String =
"DataSource=.sqlexpress;Initial
Catalog=Northwind;IntegratedSecurity=True"Using cnn As New
SqlConnection(connectString)Using cmd As New SqlCommand("select top
30 * from customers",cnn) cnn.Open() Dim reader As SqlDataReader =
cmd.ExecuteReader()GridView1.DataSource =
readerGridView1.DataBind()End UsingEnd Using 6. string
connectString = "Data
Source=.sqlexpress;InitialCatalog=Northwind;Integrated
Security=True";using (SqlConnection cnn = new
SqlConnection(connectString)){using (SqlCommand cmd = new
SqlCommand("select top 30 * fromcustomers", cnn)) {cnn.Open();
SqlDataReader reader = cmd.ExecuteReader(); GridView1.DataSource =
reader; GridView1.DataBind();}} 7. COMO FUNCIONA EL
DATABINDINGControlDataSourceFuente DataBind()de CacheDatos local
dedatos Render() 8. QUE CONTROLES DE ASP.NETSOPORTAN DATABINDING?
Solo algunos controles de ASP.NET lo soportan Pueden vincularse a
cualquier fuente de datos que implemente la interface IEnumerable
as como clases DataTable o DataSetControlesHtmlSelectArrayque
CheckBoxListArrayListsoportanBulletedListHashTablevinculacin
GridViewQueueDetailsView SortedListFormViewVinculados
aStackListViewStringCollectionDataListDataViewRepeaterDataTableDropDownListDataSetListBox
IDataReaderRadioButtonList IEnumerable 9. EJERCICIO 2 CARGANDO
DATOS DEUN ARREGLO PROGRAMTICAMENTE Agregamos una nueva pagina aspx
En el markup arrastramos un control BulletedList En el codebehind
agregamos un arreglo de strings y loinicializamos Asignamos la
propiedad DataSource y ejecutamos DataBind() Corremos el aplicativo
y revisamos el funcionamiento Agregamos un ListBox, CheckBoxList y
asignamos supropiedad DataSource Usamos Page.DataBind(); 10. Dim
numberArray As String() = New String() {"1", "2", "3", "4"}
numberListBox.DataSource = numberArray numberListBox.DataBind() 11.
protected void Page_Load(object sender, EventArgs e){ string[]
numberArray = new string[] {"1","2","3","4"
};numberListBox.DataSource = numberArray;numberListBox.DataBind();
} 12. DATABINDING DE TIPO TEXTO VALOR Para los controles que
soportan cargar solouna dimensin de datos (DropDown, ListBox,etc)
tambin se pueden vincular mediante Inicializacin de la propiedad
DataTextField al campo que queremos desplegar en el control
Inicializacin de la propiedad DataValueField al campo que queremos
usar como el valor identificador de un elemento 13. Dim dsn As
String = "Data
Source=.sqlexpress;InitialCatalog=Northwind;Integrated
Security=True"Using cnn As New SqlConnection(dsn)Using cmd As New
SqlCommand("SELECT TOP 20 * FROM PRODUCTS",
cnn)cnn.Open()ddl.DataSource = cmd.ExecuteReader()ddl.DataTextField
= ProductNameddl.DataValueField = ProductIdddl.DataBind()End
UsingEnd Using 14. string dsn = @"Data
Source=.sqlexpress;InitialCatalog=Northwind;Integrated
Security=True";using (SqlConnection cnn = new
SqlConnection(dsn)){using (SqlCommand cmd = new SqlCommand("SELECT
TOP 20 *FROM PRODUCTS",cnn)){ cnn.Open(); ddl.DataSource =
cmd.ExecuteReader(); ddl.DataTextField = ProductName;
ddl.DataValueField = ProductId; ddl.DataBind();}} 15. EJERCICIO 3
CARGANDO DATOS DETIPO TEXTO VALOR Usaremos la primer pagina aspx
que creamos y agregamos unnuevo control de tipo DropDownList En el
cdigo asignamos las propiedades DataSource,DataTextFIeld y
DataValueField Invocamos el mtodo DataBind() Corremos Para
seleccionar algn elemento vinculado de formaprogramtica usamos la
coleccin Items e invocamos el mtodoFindByText o FindByValue
numberListBox.Items.FindByText("3").Selected = true; 16. ORIGEN DE
DATOS DECLARATIVA Las fuentes de datos declarativas son una
caracterstica agregada en ASP.NET 2.0 SqlDataSource,
ObjectDataSource, XmlDataSource,LinqDataSource junto con Visual
Studio 2005 en adelanteofrecen un soporte enriquecido para la
vinculacin ymanipulacin enriquecida de los campos vinculados 17.
ORIGEN DE DATOS DECLARATIVA Sql-Object- Access-Xml-
SiteMap-DataSource DataSource DataSource DataSource DataSource
DataSite Map Component ProviderSQL AnyAccess XMLSite MapsDatabases
DataDatabases Data 18. VINCULANDO A LAS FUENTES DEDATOS
DECLARATIVASA vinculacin de datos puede realizarse con o sin cdigo
alguno Soporte desde el diseador Integracin con herramientas como
server Explorer Modelo de vinculacin fcil de extenderse 19. 20.
EJERCICIO 4 DATABINDING DECLARATIVO CON CDIGO Creamos una nueva
pagina aspx Arrastramos un GridView Configuramos un nuevo
SqlDataSource mediante el asistente Elegimos la tabla Customers
Exploramos las distintas opciones de ordenamiento, generacin
yfiltrado Y con codification cargamos el
datasourceGridView1.DataSource = SqlDataSource1.Select(new
DataSourceSelectArguments());GridView1.DataBind(); 21. EJERCICIO 5
DATABINDINGDECLARATIVO SIN CDIGO Sobre la ultima pagina creada
Editamos la declaracin del GridView para especificar lapropiedad
DataSourceID igual al nombre de nuestro controlSqlDataSource No
olvidemos comentar el cdigo anterior 22. COMO FUNCIONA LA
VINCULACIN DECLARATIVA A LAS FUENTES DE DATOSPeticinGridView
IDataSource SqlDataSourceCreateChildControls()EnsureDataBind()
SelectDataBind() Cache Database local de datos Render 23.
SQLDATASOURCE Soporta todas las interacciones con SQL como lectura,
escritura, actualizacin, eliminacin, filtrado, cacheo, ordenado
Cuando el DataSource cuenta con algunas de estas propiedades
establecidas mas soporte y funcionalidad es posible en los
controlesPropiedad
DescripcionProviderNameSystem.Data.SqlClient,System.Data.OleDb,System.Data.OracleClientDataSourceMod
DataSet o DataReadereSelectCommmaQuery o el nombre de
unndprocedimiento almacenado paraseleccionar datosInsertCommand
Query o el nombre de unprocedimiento almacenado parainsertar
datosDeleteCommand Query o el nombre de unprocedimiento almacenado
paraeliminar datosUpdateCommanQuery o el nombre de un 24. EJERCICIO
6 MANEJANDO LAINSERCIN DE DATOS Creamos una nueva pagina aspx
Configuramos un nuevo SqlDataSource con la funcionalidad de que se
auto genere el insert, update, delete, read Verificar los
InserParameters y los tipos de parmetros en general Invocar
programticamente el procesoprotected void Button1_Click(object
sender, EventArgs e) de
insercin{SqlDataSource1.InsertParameters["CustomerId"].DefaultValue
=
"aaaa";SqlDataSource1.InsertParameters["CompanyName"].DefaultValue
=
"aaaa";SqlDataSource1.InsertParameters["ContactName"].DefaultValue
=
"aaaa";SqlDataSource1.InsertParameters["ContactTitle"].DefaultValue
= "aaaa";SqlDataSource1.Insert();} 25. GRIDVIEW Muestra datos en
forma tabular, es el sucesor delcontrol DataGrid Generacin de
columnas implcita y explicita con capacidad de manejar columnas
especiales como ImageField CheckBoxField HyperlinkField
TemplateField Interaccin inteligente con controles DataSource para
que de manera predeterminada soporte Paginacin automtica, edicin,
eliminacin y ordenamiento De forma automtica a los datos vinculados
y retorna unaTabla con columnas y renglones en formato HTML 26.
EJERCICIO 7 GENERANDO GRIDVIEWDIRECTAMENTE DESDE SERVEREXPLORER
Creamos una nueva pagina aspx Abrimos el server explores y buscamos
la base de datos de Northwind ybuscamos la tabla Customers
Arrastramos la tabla Customers a la superficie de diseo
Visualizamos las opciones del GridView Editamos las columnas para
incluir una de tipo hipervnculo paraimplementar el maestro 27.
DETAILSVIEW Soporta el despliegue y manipulacin de un solo rengln
til para escenarios maestro detalle Soporta paginado en caso de
mostrar mas de un rengln, edicin,eliminacin e insercin Genera html
en formato de tablas, columnas y renglones 28. EJERCICIO 8
IMPLEMENTANDODETALLE Creamos una nueva pagina aspx Abrimos el
server explores y buscamos la base de datos deNorthwind y buscamos
la tabla Customers Arrastramos la tabla Customers a la superficie
de diseo Visualizamos las opciones del GridView Editamos las
columnas para incluir una de tipo hipervnculo 29. TEMPLATE Los
controles GridView, DetailsView, ListView, Repeater yDataList
permiten la personalizacin de la apariencia y el manejode estador a
travs de plantillas Provee el marco sobre el cual se despliegan
elementos y nos da un grado deflexibilidad para generar nuestro
contenido Nos permite especificar exactamente como se desplegar la
informacin Maneja el marco y la vinculacin, genera tablas solo que
con la posibilidad depersonalizar la celda La sintaxis Eval y Bind
se usan para extraer datos del rengln actual, Evalobtiene
informacin de solo lectura y Bind es de lectura y escritura, two
waybinding. 30. Plantilla vinculada delFuente DataBind() de
controldeDatosDataSourcePor cada rengon en la fuente de
datosEscribe los datos de acuerdo a nuestra especificacion 31. COMO
EXTRAER VALORES DEL LAVINCULACION Los controles que ubicamos en una
plantilla necesitan relacionarse con el rengln actual que esta
siendo vinculado Utilizamos la nomenclatura para crear la ventana
de acceso a losdatos del rengln vinculndose Usamos Eval para
extraer los datos Es factible tambin programticamente obtener y
establecer losvalores del rengln vinculndose 32. EJERCICIO 9
TRABAJANDO CONRENGLONES VINCULADOS Creamos una nueva pagina aspx
Abrimos el server explores y buscamos la base de datos de Northwind
ybuscamos la tabla Customers Arrastramos la tabla Customers a la
superficie de diseo Visualizamos las opciones del GridView
Agregamos una columna de tipo Plantilla Visualizamos los distintos
modalidades como ItemTempalte,AlternateTemplate, EditTemplate, etc
Agregamos un control de tipo Etiqueta en el estado ItemTemplate y
en laspropiedades emergentes de la etiqueta especificamos la
vinculacin con quecolumna> 33. EJERCICIO 9 TRABAJANDO CON
RENGLONES VINCULADOS Agregamos un botn justo aun lado de la
etiqueta y especificamos sunombre como cmdOpcion Dentro del grid
buscamos el evento RowDataBound el cual se disparapor cada rengln
que se esta vinculando Programticamente especificamos propiedades
al botn recinagregadoprotected void GridView1_RowDataBound(object
sender, GridViewRowEventArgse) { if (e.Row.RowType ==
DataControlRowType.DataRow) { Button btn =
e.Row.FindControl("cmdOpcion") as Button;
btn.Attributes.Add("onclick", "return confirm(hola);"); } } 34.
REPEATER Este control nos da la posibilidad de manipular a nuestro
antojo elHTML generado por el control Soporta el concepto de
plantillas Trabaja con los conceptos de vinculacin mediante
datasourcessolo que nos da la libertad de generar y dibujar el HTML
que seestar generando EmployeeID: />
LastName: />
FirstName: /> 35. EJERCICIO 10 TRABAJANDO CONREPEATER /// 36.
DATALIST Es la combinacin de la flexibilidad de Repetar con la
estructurade un GridVIew Permite mostrar a manera de lista vertical
u horizontal cualquierhtml creado como plantilla dentro del control
Es util para acomodar elementos de forma estructurada en
lainterface de usuario Dibuja cada rengln de la fuente de datos
como una celda Requiere que se define por lo menos la plantilla
ItemTemplate Usamos la propiedad RepeatColumn para especificar
cuantoselementos queremos incluir en el rengln Tambien contamos con
RepeatDirectin para especificar ladireccin en que el control s eva
generandoi 37. EJERCICIO 11 TRABAJANDO CONDATALIST /// 38.
PARAMETROS DE DATASOURCE Los controles DataSource soporta coleccin
de parmetros paracada distinta operacin Una coleccin de parmetros
separada para actualizacin, insertado, seleccionado, eliminado Las
fuentes de parmetros pueden ser controles, las cookies, la misma
forma, datos de perfil y/o cadena querystring 39. PARMETROS Existen
diversas tipos de parmetros Control Parameter Valor que proviene de
cualquier control del lado servidor de una pagina Cookie Parameter
Valor que proviene de algn dato almacenado en una cookie Form
Parameter Valor proveniente de una variable HTTP POST Profile
Parameter Valor proveniente del perfil del usuario de alguna
propiedad del perfil QueryString Parameter Valor obtenido de la
barra de direcciones url Session Parameter Valor obtenido de alguna
variable de sesin 40. EJERCICIO 12 TRABAJANDO CONPARAMETROS FILTER
Agregamos una nueva pagina aspx Arrastramos la tabla de Customers
del server explorer a la pagina Agregamos un cuadro de texto y un
botn de buscar Seleccionamos nuestro SqlDataSource y buscamos la
propiedadFilterExpression y establecemos el valor CompanyName
LIKE%{0}% Configuramos el parmetros 41. EVENTOS DE DATASOURCE Los
DataSources exponen eventos, tiles para personalizar el
comportamiento y la interaccin que el DataSource va teniendo Es
factible entonces agregar parmetrosprogramticamente Desempear
operaciones cuando se realizasatisfactoriamente un insert, update,
delete, etc. Impedir la ejecucin de alguna operacinprotected basado
en alguna validacinvoid SqlDataSource1_Inserting(object sender,
SqlDataSourceCommandEventArgs e) {
e.Command.Parameters["CompanyName"].Value = "hola";// tambien se
puede cancelar la operacion usandoe.Cancel = true; } 42.
VINCULACION DE DOS LADOS LA sintaxis Bind() se puede usar en
controles que soportanInsert/Update/Delete Es como Eval() solo que
este va dos veces Durante el Select se comporta como Eval() Durante
el Inser/Update los valores son mapeados en parmetros y usados para
actualizar Se usan en los controles mas comunes como GridView,
DetailsView, FormVIew, ListVIew CustomerID: />
CompanyName: />
ContactName: /> 43. EJERCICIO 13 IMPLEMENTANDOUPDATE EN GRIDVIEW
CONCONTROLES ADICIONALES 44. FORMVIEW Similar al DetailsView,
despliega un rengln No hay generado de HTML por default, tenemos
que especificarsu plantilla para desplegar su contenido til cuando
queremos personalizar el despliegue visual 45. EJERCICIO 14 CREANDO
UN ALTA DEREGISTROS Agregamos una nueva pagina aspx Arrastramos un
DetailsView y configuramos el insert explicandoque hay que hacer
template cada Field si quisiramos hacer usode los validadores
Usamos mejor un FormView y editamos su EditMode a Insert Agregamos
validadores 46. LISTVIEW Lo mejor de todos los controles que
soportan vinculacin a datos Control orientado a plantilla Puede
remplazar a cualquier control que soporta vinculacin de datosSe
define elmarcoSe define elelementoSe define suplantilla de muestra
47. DATAPAGER Desacopla la interface de paginacin del ListView
agregando unnuevo control especifico para esto Permite usar las
opciones de navegacin en donde queramos Podemos crear diversas
opciones de pagina para una misma control 48. XMLDATASOURCE Permite
vincularlos a fuentes de datos dinstintas a bases dedatos Special
para trabajar con datos XML">
49. EJERCICIO 14 CONSUMIENDORSS 50. XMLDATASOURCE Podemoa usar este
control para contar con catalogos de datosque sabemo que no
cambiaran constantemente No es necesario que se encuentren en la
base de datos comotablas aquellos catalogos o elmentos de
informacion Lista de estado civil Sexo Tipos de pago Etc 51.
EJERCICIO 15 USANDO CATALOGOS Creamos una nueva pagina Agregamos la
carpeta App_Data Agregamos una carpeta llamada xml Agregamos un
nuevo archivo xml llamado StstusMarital.xml Agregamos el siguiente
XML Agregamos un nuevo aspx Arrastramos un XmlDataSource y
establecemos propiedad DataFile Agregamos algn DropDownList
Vinculamos 52. XMLDATASOURCEAbstract... Abstract... Abstract... 53.
EJERCICIO 16 USANDOARBOLES 54. OBJECTDATASOURCE Soporta la
vinculacin a un objeto de capa mediaControl ObjetosObjectDataSource
Data-boundObjetosFuente depublic static class MiClase { Datosstatic
public List OntenerDatos() {List personas = new List();// agregamos
personasreturn personas;}} 55. EJERCICIO 17 CREANDO CAPA DEDATOS
Agregamos una carpeta de tipo App_Code Agregamos un DataSet
Agregamos DataTableAdapter para tabla customer Compilamos Agregamos
nueva paginas aspx Agregamos ObJectDataSource Configuramos
ObjectDataSource 56. ENTRENAMIENTO EN ACCESO ADATOS EXTREMO CON
ASP.NETHaarn GonzalezMicrosoft MCP, MCAD, MCT, MCTS yMVP