Download - Trabajar con bases de datos desde ASP.NET
![Page 1: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/1.jpg)
ACCESO A BASES DE DATOS SQL CON ASP.NET
Visual Studio .NET 2005 - ASP .NET - SQL 2005
Fechas: 26/10/09 – 12/11/09Horario: De 15:50 a 19:15 horas Lunes -Jueves
Profesor: Javier Roig [email protected]
![Page 2: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/2.jpg)
Temario
1. Introducción a Visual Studio.NET (1 sesión) Conceptos básicos. El entorno de trabajo. Carpetas de sistema y archivos de configuración.
Acceso a bases de datos desde VS.NET
2. Conceptos básicos (3 sesiones) Manipular controles y sus propiedades. Controles básicos, label, textbox y button. Controles
Lista, listbox, dropdownlist, chekboxlist. Eventos y PostBack
3. Familia de Controles de acceso a datos DataSource (1 sesión) SqlDataSource. Definición de la conexión a la base de datos
4. Controles de presentación de datos (3 sesiones) Controles plantilla, datalist. Controles tabla, Gridview, Detailsview, Formsview
5. Introducción ADO.NET(3 Sesiones) Conceptos básicos de la estructura system.data. Connection. Command. DataReader
6. Trabajar con datos de forma desconectada(3 sesiones) DataAdapter. DataSet
7. Paso de parámetros y Procedimientos almacenados(1 Sesión) Definición de parámetros y su uso con el objeto command. Llamada a procedimientos
almacenados
8. Gestión de Errores (1 Sesión) Canalizar errores. Generar excepciones según el tipo de error
2
![Page 3: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/3.jpg)
1 Introducción a Visual Studio.NET
Conceptos básicos.
El entorno de trabajo.
Carpetas de sistema y archivos de configuración.
Acceso a bases de datos desde VS.NET
3
![Page 4: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/4.jpg)
Introducción Definición
Modelo de programación consistente para todas las plataformas
Interoperabilidad entre tecnologías Fácil migración Soporte HTML, XML, SOAP
4
![Page 5: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/5.jpg)
Elementos del núcleo de .NETa. .NET Framework. Conjunto común de servicios para
desarrollo de aplicaciones independientemente del lenguaje. No es necesario distribuir un runtime especifico
b. .NET Building Block Services. Servicios Webs distribuidos programables que pueden funcionar tanto en intranet como en internet
c. Visual Studio .NET. Entorno para simplificar desarrollo, depuración y mantenimiento de software
d. .NET Enterprise Services.Herramientas asociadas. SQL, Biztalk, Integration Host Services, Aplication Center, Iternet Security and Acceleration Server 2000, Commerce Server.
5
![Page 6: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/6.jpg)
.NET FrameWork – Componentes Commond Languaje Runtime (CLR) . NET Framework library ADO .NET ASP .NET Interfaz de usuario
6
![Page 7: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/7.jpg)
Commond Language Runtime
Descripción Simplifica desarrollo por
un entorno robusto Soporta múltiples
lenguajes Proporciona un entorno
gestionado (Garbage collection, seguridad)
7
![Page 8: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/8.jpg)
CLR – Componentes
Class Loader. Carga en memoria y prepara para su ejecución MSIL (Microsoft Intermediate Languaje). Convierte MSIL a código
nativo justa antes de ejecutar Code Manager. Gestiona la ejecución del código Garbage Collection. Controla el ciclo de vida de todos los objetos Security Engine. Permite tener seguridad por el origen del código
y por el usuario Debug Engine. Depurar y realizar trazas del código Type Checker. Evita uso incorrecto de variables no inicializadas Excepcion Manager. Estructura de manejo de excepciones. Thread Suport. Programación multihilo. Com Marshaled. Gestion de comunicación de objetos com .NET FrameWork Class Library Support.
8
![Page 9: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/9.jpg)
.NET FrameWork Librería de Clases Namespace.
Organización Lógica de tipos y clases base relacionadas. Un namespace puede agrupar otros namespaces
System. Contienen definición de las clases fundamentales Sytem.Collections. Ordenación de listas, agrupación de datos System.IO. Entrada y salidad de datos a ficheros, streams. System.NET. Protocolo TCP/IP y control de socket ..... .NET Framework SDK Documentation
9
![Page 10: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/10.jpg)
ADO .NET Nueva generación de ActiveX Data Object Soporta programación desconectada Provee soporte para XML System.Data. Namespace que contiene la clase
DataSet System.XML Namespace que soporta XML según
la compilación W3C. System.XML.Xsl, soporta transformaciones. System.XML.Serializacion, contiene la base para los
Servicios Web
10
![Page 11: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/11.jpg)
Qué es ASP.NET Evolución más flexible de ASP Páginas Web Dinámicas que pueden acceder los
recursos del Servidor Procesamiento del lado del Servidor de
Formulario Web Servicios Web XML que permiten crear
Aplicaciones Web distribuidas Independiente del navegador Independiente del Lenguaje
11
![Page 12: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/12.jpg)
Características del Entorno de Desarrollo
IDE (Integrated Development Evironment) Elementos de un proyecto Uso de las características del entorno Depuración de un proyecto Compilación en .NET
12
![Page 13: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/13.jpg)
IDE - Introducción
Solo un entorno para todas las herramientas de desarrollo
Una solución puede contener múltiples lenguajes
Una solución puede contener múltiples proyectos
Personalizar el entorno de trabajo Visor de Internet integrado Depuración de código
13
![Page 14: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/14.jpg)
IDE - Plantillas de Trabajo Aplicación Windows, Aplicación estándar Librería de Clases, a modo de dll de vb 6 Windows Control Library, Controles definidos por el usuario. ASP .NET Web Aplication, aplicación que se va a ejecutar en un
Internet Information Server. ASP. Web Services, aplicación que va a proveer de servicios
XML a aplicaciones clientes Web Control Library, Controles de usuario para aplicaciones
web. Aplicación de consola, se ejecuta en la línea de comandos Otras (Servicios Windows, proyectos vacíos..)
14
![Page 15: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/15.jpg)
Ficheros de un proyecto Fichero de la Solución (.sln, .suo)
.sln, Contiene la información de varios proyectos .sou, personalización del proyecto por el usuario
Fichero de proyecto (.vproj) Fichero XML que contiene referencias a todos los elementos del
proyecto. Según el lenguaje cambia el tipo (en c# son .csproj)
Ficheros Web Clases, formularios, modulos... (.vb)
Diferentes elementos se pueden guardar en el mismo fichero. Servicios Web XML (.asmx) Formularios Web (.aspx)
El código se almacena en ficheros .vb Clases Web Globales (.asax) Web.config
Ensamblado (.dll) Bases de datos
SQL Express (.mdf) Access (.mdb)
15
![Page 16: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/16.jpg)
Carpetas reservadas
Desde el explorador de soluciones Bin .dll App_Browsers .browser App_Code .cs, .vb, .xsd App_Data .mdb, .mdf, .xml App_GlobalResources .resx App_LocalResources .resx App_Themes .skin, .css, .xsl App_WebReferences .wsdl
16
![Page 17: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/17.jpg)
Assemblies y Referencias Ensamblados (.dll , .exe y ficheros auxiliares) .Net FrameWork tiene ensamblado predefinidos Se crean automáticamente cuando se construye un
proyecto Referencias a elementos externos del proyecto.
.NET COM Proyectos
Menú Proyecto Agregar Referencia Botón derecho en el proyecto Agregar Referencia
17
![Page 18: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/18.jpg)
Conceptos Acceso a Datos
18
Modelo ASP 2.0 vs ASP 1.1 Nuevos controles
Más ligeros Más fáciles de utilizar Menos código para obtener los mismos resultados
DataBindig Enlazar controles a un origen de datos Simple, enlaza un control a un campo del origen de datos. Compleja, enlazar un control a varios campos de un origen de
datos App_Data
Carpeta por defecto para establecer los orígenes de datos Puede contener Access (mdb), SQL Express (mdf), XMl
![Page 19: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/19.jpg)
Tipos de Controles
19
Tipos Específicos para enlazar a origen de datos GridView Generales, se pueden enlazar aunque con limitaciones TextBox Mixtos, permiten trabajar con un origen de datos o independientes
ListBox Controles de Acceso a datos, no son visibles pero permiten enlazar a
otros controles SQLDataADapter
Cadenas de conexión Genera automáticamente en función del origen de datos Muestra por defecto el contenido de App_Data Permite guardarlas en web.config
DataSource vs DataSourceid DataSourceId, indica el control de origen de datos, en cambio
Datasource indica el objeto de origen de datos
![Page 20: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/20.jpg)
Librerias Conjunto de clases que permite trabajar con bases de
datos mediante System.Data Acceso a múltiples tipos de bases de datos Uso de proveedores de datos como antes era DAO, ADO,
OLEDB Dos librerías con objetos parecidos
SQL .NET (SQLDataReader) -> Para SQL Server OLE DB .NET (OLEDBDataReader) -> Otros
Imports System.DataImports System.Data.SqlClientUsing System.DataUsing System.Data.SQLClient
20
![Page 21: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/21.jpg)
Proveedores de Acceso a Datos
Espacio de nombres◦ System.Data.SQLClient, acceder a SQL Server 7.0 o
posterior◦ System.Data.OLEDB, cualquier otro tipo de acceso a
datos Elementos
◦ Objeto Connection para conectarse con la base de datos◦ Objeto Command para ejecutar comandos con la base
de datos◦ DataReader, para crear conjunto de datos de solo
lectura◦ DataAdapter objeto para intercambiara datos entre un
origen de datos y un DataSet La información viaja entre cliente y servidor
mediante XML
21
![Page 22: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/22.jpg)
2 Conceptos básicos
Manipular controles y sus propiedades
Controles básicos, label, textbox y button
Controles lista, listbox, dropsdownlist, checkboxlist
Eventos y Postback
22
![Page 23: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/23.jpg)
Tipos de controles servidor
23
HTML server controls Añadir runat=“server” para tratarlo en el modo
servidor Web server controls
Integrados, equivalentes a los controles HTML Validación, testar los datos introducidos Enriquecidos, funcionalidad avanzada Enlazados a datos Controles Web, presentación de datos en navegadores
![Page 24: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/24.jpg)
Controles de servidor HTML
24
Acceso desde el lado de servidor Las propiedades son todas tipo String, por lo
que solo se detecta los errores cuando se ejecuta
Esta dentro de una etiqueta <Form ... Runat=“server”>
Interesa cuando utilizan funciones de java Permite actualizar rápidamente una página html
con nuevas funcionalidades<input type=“text” id=“textname” runat=“server”>
![Page 25: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/25.jpg)
Controles WEB de Servidor
25
Creados para ASP.NET No tienen funcionalidad si no tienen una
etiqueta runat=“server” Propiedades son tipadas, permite detectar
errores antes de compilar Namespace System.Web.UI.WebControls
![Page 26: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/26.jpg)
Guardar el estado. ViewState
26
Cada vez que se pide una página se construye la página y todos sus controles y se destruye después de que se envié al navegador para aumentar la capacidad del servidor
Soluciona el problema de que se limpien los controles cuando viaja entre el servidor y el cliente.
Control oculto _VIEWSTATE, guarda el estado dentro de una sección <form ... Runat=“server”>
Contiene un string de pares nombre-valor, con los nombres de cada control y el último valor
Cada petición se actualiza el control Habilitar viewState a nivel de @Page o a nivel de control<%@ Page EnableViewState=“true” %><asp:ListBox id=“ListName” EnableViewState=“true”
runat=“server”></asp:listbox>
![Page 27: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/27.jpg)
Controles Comunes
27
Creación en tiempo de Diseño Desde la barra de herramientas de controles Creación del código HTML de forma directa
Posicionamiento Absoluto o relativo Herramientas Opciones Diseñador HTML Posición CSS
PostBack Hay controles que automáticamente generan un postback
(button) Otros controles (textbox) no lo tienen y sus eventos se
disparan cuando uno que si lo tiene se ejecuta Se puede modificar el comportamiento modificando la
propiedad AutoPostBack a True del control
![Page 28: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/28.jpg)
Controles WEB de Servidor - Integrados
28
Control de servidor Equivalente HTML Función
<asp:button> <input type=submit> Crea un botón que envia una petición al servidor
<asp:checkbox> <input type=checkbox> Casilla de verificación
<asp:hyperlink> <a href=“...”> </a> Hiperenlace a una etiqueta HTML
<asp:image> <img srec=“...” > Crea un área para mostrar una imagen
<asp:imagebutton> <input type=image> Botón con imagen en vez de texto
<asp:LinkButton> No tiene Botón con apariencia de hiperenlace
<asp:label> <span> </span> Texto que no puede modificar el usuario
<asp:listbox> <select size=“5”></select>
Lista de elementos de selección múltiple
![Page 29: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/29.jpg)
Controles WEB de Servidor – Integrados
29
Control de servidor Equivalente HTML Función
<asp:panel> <div></div> Panel contenedor de controles
<asp:radiobutton> <input type=radiobutton>
Botón de radio
<asp:table> <table> </table> Crea una tabla
<asp:textbox> <input type=text> Cuadro de texto
<asp:literal> No tiene Texto
![Page 30: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/30.jpg)
Controles WEB de Servidor - Validación
30
Control Función
CompareValidator La entrada tiene que coincidir con otra entrada
CustomValidation La entrada tiene que cumplir un criterio
RangeValidator La entrada tiene que estar en un rango
RegularExpressionValidator
Tiene que cumplir un patrón
RequiredFieldValidator Usuario tiene que entrar un valor antes de que se procese el control
ValidationSummary Recoge todos los mensajes de error de los controles de validación para mostrarlos centralizados
![Page 31: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/31.jpg)
Controles WEB de Servidor - Enriquecidos
31
Control Función
AdRotator Secuencia de imágenes, aleatorias o no
Calendar Muestra un calendario
![Page 32: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/32.jpg)
Controles WEB de Servidor - Enlazados
32
Control Función
CheckBoxList Columna de valores en formato checkbox
Repeater Muestra información de un dataset utilizando un conjunto de controles HTML, se repite para cada valor del dataset
DataList Similar al repeater pero en formato lista
DataGrid Muestra la información de un dataset en columnas
DropDownList Muestra los datos en un desplegable
ListBox Muestra los datos en una ventana
RadioButtonList Muestra una columna de botones de opción
GridView Versión avanzada del Data grid
![Page 33: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/33.jpg)
Controles Comunes
33
Label, Muestra información que se puede modificar desde el código
del servidor Para texto fijo mejor utilizar el control literal de HTML Utilizar la propiedad text para escribir el valor
TextBox Muestra y recoge información del usuario Propiedad text contiene el texto del textbox TextMode, Formato del cuadro de texto
SingleLine, Multiline, Password Columns, Rows, máximo ancho y largo del cuadro de texto MaxLength, número de caracteres máximo
![Page 34: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/34.jpg)
Controles Comunes II
34
Button Boton que genera un postback al servidor Tipo submit (por defecto), solo genera un postback al
servidor Tipo command, indicar el nombre de la acción en la
propiedad commandName. Se gestiona con el evento command
Propiedad CausesValidation, por defecto true, hace que se valide el formulario
CheckBox Permite seleccionar entre cierto y falso Checked indica su estado Text, el literal que muestra Evento CheckedChange se ejecuta cuando hay un
cambio en la propiedad check. Autopostback por defecto es false
![Page 35: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/35.jpg)
Controles Comunes III
35
RadioButton Seleccionar opciones de forma exclusiva en un
grupo GroupName, todos los que tengan el mismo valor
se validan juntos Text, contiene el título Checked, indica si está activo o no
![Page 36: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/36.jpg)
Controles Navegación
36
Web.SiteMap XML con la representación del sitio web
SiteMapPath Representa web.sitemap
SiteMapDataSource Enlaza con el XML y permite utilizarlo con otros controles StartingNodeOffset
TreeView Representación de un SiteMapDataSource Formado por TreeNode Permite colapsarse o expandirse
Menu Representación de un SiteMapDataSource Formado por MenuItem Permite programar eventos servidor o redirección a páginas
![Page 37: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/37.jpg)
Controles Enlazados
37
ListBox, lista de datos Utiliza la colección Items que contiene todos los
elementos Cada uno tiene la propiedad Text que es lo que muestra
y Value que es lo que devuelve al servidor Se enlaza a un DataSource y a un DataMember SelectedIndex, SelectedItem, SelectedValue es la forma
de acceder al elemento seleccionado DropDownList
Similar al listBox, pero solo muestra los valores cuando se despliega la lista
![Page 38: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/38.jpg)
Controles Enlazados II
38
CheckBoxList Similar al listbox donde se puede hacer la selección
marcando las casillas RepeatDirection y RepeatColumns son propiedades
para indicar como rellenar el control con los valores Selected, indica si el item está seleccionado
RadioButtonList Similar al chekboxList pero solo se puede seleccionar
una opción
![Page 39: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/39.jpg)
Eventos – Qué son eventos
39
Acción que responde a una actuación del usuario con un control de la página
Tipo de evento por área de ejecución Eventos de servidor Eventos de cliente
Ejemplo de evento Pulsar un botón Submit
![Page 40: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/40.jpg)
Eventos Cliente
40
Se ejecuta en el equipo cliente, no se envía información al servidor
Solo para controles HTML Ejecutan inmediatamente Eventos tipo onChange y mouse Keys Sintaxis
<SCRIPT languaje=“javascrip”>OnClientClick="return confirm('Seguro que quieres eliminar')"
![Page 41: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/41.jpg)
Eventos Servidor
41
Se ejecuta en el equipo servidor, la petición se envía al servidor para su proceso
Los procedimientos de evento es código compilado que está en el servidor
Sirve para controles HTML y Web Soporta un número menor de eventos, por la demora del
envío de la información Algunos OnChange NO soporta MouseKeys
Sintaxis<SCRIPT languaje=“vb” runat=“server”><SCRIPT languaje=“c#” runat=“server”>
![Page 42: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/42.jpg)
Creación de Eventos
42
Acceso a los eventos Al hacer doble clic sobre un control, se crea un evento con
el mismo Id que el control Seleccionar el evento de la lista Seleccionar el botón eventos en las propiedades del
control Argumentos
El objeto que envía el evento (sender) Una instancia del evento (e)
Tipo EventArgs, sin informacion adicional Imágenes ImageClickEventArgs, información de
coordenadas Utilizar Ctype para convertir sender
![Page 43: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/43.jpg)
Creación de Eventos
43
AutoEventWireup Si hay que especificar los procedimientos para los
eventos o los toma dependiendo del nombre del procedimientos
Gestionar varios controles con HANDLED Procedimientos de eventos personalizados
AddHandler AddressOf
![Page 44: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/44.jpg)
Eventos de página
44
Orden de generación de los eventos Page_init Page_Load Eventos de Control Page_Unload
Hay eventos de control que no se ejecutan hasta que el Web Form se envía al servidor (Change)
PostBack, envío de información al servidor Se puede forzar si el control tiene la propiedad
AutoPostBack=true
![Page 45: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/45.jpg)
Trabajar con eventos PostBack
45
El evento Page_Load se ejecuta cada llamada Propiedad page.isPostBack, determina si ya se
ha enviado al servidorIf not Page.IsPostBack then
‘ Ejecuta solo la primera vez
End If
If (!Page.IsPostBack)
{
//ejecuta la primera carga
}
![Page 46: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/46.jpg)
Trabajar con controles comunes
46
Acceso a los controles de una página web Objeto Me Colección de controles
Escribir información Asignar la información según el tipo
control.propiedad=valor
Leer información Almacenar la información en una variable Utilización en una función
Variable=control.propiedad If control.propiedad then..
![Page 47: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/47.jpg)
Trabajar con Listas
47
Colecciones de elementos Propiedad items
Escribir información Método ADD de la propiedad items Asignar a un origen de datos
Leer información Elemento Seleccionado Recorrer la colección items
![Page 48: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/48.jpg)
Trabajar con Controles de Navegación
48
Crear menús en tiempo de ejecución Crear el nodo o el elemento Añadir el nodo al menú o al árbol Propiedad Items y ChildItems en los menús Propiedad Nodes en losTreeview
Leer información Recorrer el menú/árbol mediante los nodos
Responder al Evento Propiedades SelectedNode, SelectedMenuItem
![Page 49: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/49.jpg)
3 DataSource
Conceptos
Tipos de controles
Data Set con Tipo
49
![Page 50: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/50.jpg)
Controles Origen de Datos
50
SqlDataSource Enlaza con un origen de datos SQL (no solo SQL Server) Especificar base de datos, consulta/ tabla, filtros,
ordenacion AcessDataSource
Enlaza con bases de datos Access Igual que el anterior pero más limitado
ObjectDataSource Enlaza con objetos de negocio definidos en una clase Seleccionar el objeto y los métodos a utilizar
XmlDataSource Enlaza con un origen de datos XML Especificar archivo, el archivo de transformación (si es
necesario) y xPath para indicar el tipo de nodo a mostrar SiteMapDataSource
Enlaza con web.sitemp para crear la estructura de navegación del sitio
![Page 51: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/51.jpg)
SQLDataSource Enlaza controles web con bases de datos SQL Cadena de conexión
Utiliza una cadena de conexión diferente en función del tipo de base de datos
Se pueden almacenar en <connectionStrings> del web.config
Comandos SelectCommand, UpdateCommand, DeleteCommand, InsertCommand Admiten sentencias SQL o nombres de Procedimientos almacenados Permite especificar parámetros Databind ejecuta el comando select Algunos controles (Gridview) los llaman automáticamente
Puede devolver un DataSet o un dataReader Permite cachear la información Se puede ordenar la información que devuelve
51
![Page 52: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/52.jpg)
AccessDataSource Enlaza controles web con bases de datos Microsoft Access Propiedad DataField identifica la base de datos
Se puede utilizar rutas relativas (~/App_Data/bd.mdb)
Comandos SelectCommand, UpdateCommand, DeleteCommand, InsertCommand Admiten sentencias SQL o nombres de consultas Permite especificar parámetros Databind ejecuta el comando select Algunos controles (Gridview) los llaman automáticamente
Se puede ordenar la información que devuelve
52
![Page 53: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/53.jpg)
ObjectDataSource Enlaza controles web con objetos de la capa de negocio Se utilizan en arquitecturas de tres capas Comandos se enlazan con métodos
SelectCommand, UpdateCommand, DeleteCommand, InsertCommand Databind ejecuta el comando select Algunos controles (Gridview) los llaman automáticamente
Se puede cachear, pero no es recomendable para datareader Se puede ordenar la información que devuelve
53
![Page 54: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/54.jpg)
XmlDataSource Enlaza controles web con archivos XML Se especifica en la propiedad DataField Se utiliza para leer información aunque se puede modificar con
restricciones con el método SAVE No tiene control de concurrencia Tiene que existir previamente el archivo
Permite cachear la información NO Se puede ordenar la información que devuelve Se pude filtrar con XPath
54
![Page 55: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/55.jpg)
SiteMapDataSource Enlaza controles de navegación con el archivo del mapa del sitio Nodo inicial, identifica a partir de donde se muestra la información StartingNodeOffset, número de nodos que tiene que mostrar con
respecto a la página actual
55
![Page 56: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/56.jpg)
DataSet con tipo Permiten crear una capa de acceso a datos independiente de la
base de datos Se ubican por defecto en App_Code DataSet formado por DataTables DataSet esta utiliza TableAdapters para definir la conexión y
métodos Creación
Agregar nuevo elemento data set Asistente Cadena de Conexión Definición de esquema Método para llenarlo Métodos para actualizarlo
UtilizaciónDim taAutor as new BibliotecaTableAdapters.AutorTableAdapter
Girdview1.datasource=taAutor.GetAutor
56
![Page 57: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/57.jpg)
DataSet con tipo - Parámetros Creación
Indicar parámetro con nombre @parametro Añadir los métodos de llenado y de generación del dataSet Verificación de los parámetros en tiempo de diseño
Utilización Igual que en el caso de métodos que no tiene parámetros
57
![Page 58: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/58.jpg)
DataSet con Tipo – Modificar Datos Creación de métodos directos
Modificar la información directamente en la base de datos Se pasan como parámetros los valores Uso de Scope_identity Identificar uso de Scalar
Actualización por Lotes Utilizar las propiedades de TableAdapter Se generan automáticamente desde el asistente
Definición de las sentencias entre varias tablas El generador de consultas no sabe trabajar con Join Podemos utilizar subconsultas
58
![Page 59: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/59.jpg)
Espacio de nombres System.ComponetModel
59
Necesario para crear clases que definan el comportamiento de componentes y controles
System.ComponentModel.DataObject. Enlaza con ObjectDataSource
DataObjectMethodAttribute. Identifica el tipo de operación
DataObjectMethodType Enumeración de tipos de métodos existentes
<System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, True)> _
Public Function GetListaAutor() As Biblioteca.AutorDataTable
Return AutorAdapter.GetAutor
End Function
![Page 60: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/60.jpg)
DataSet con Procedimientos Almacenados
60
Crear una consulta dentro del TableAdapter Utilizar procedimientos existentes
Seleccionar el procedimiento existente Determinar los datos que devuelve
Crear Procedimientos automáticos Crear a la vez que el table adapter Seleccionar el tipo de operación Genera el código en la base de datos
![Page 61: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/61.jpg)
4 Controles de presentación de datos
DataBinding
Controles Enlazados
61
![Page 62: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/62.jpg)
DataBinding
62
Enlazar controles a un origen de datos Propiedad DataSource, identifica el origen de datos
puede ser un dataSet, Propiedad DataSouerceID, indica el control origen de
datos que está vinculado a los datos Propiedad DataMember, dentro de un origen de datos
con múltiples tablas puede especificar la tabla o la vista que queramos asociar
Propiedad DataKey, el campo clave del control cuando se selecciona un elemento del mismo
Metodo DataBind, actualiza los datos que recibe a través de la propiedad DataSource.
![Page 63: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/63.jpg)
Enlazar controles simples
Eval Enlazar una propiedad con un campo de la base
de datos Solo de lectura Control.propiedad=<%# Eval(“nombre”) %>
Bind. Enlazar una propiedad con un campo Permite modificar el campo Control.propiedad=<%# Bind(“nombre”) %>
DataFormatString {0,formato}
Utilizar la etiqueta inteligente63
![Page 64: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/64.jpg)
Repeater
64
Utiliza formatos de Plantilla Muestra información de cada registro del origen de
datos en una fila Hay que especificar los campos que se quieren mostrar
desde la ventana de código Se traduce en el navegador como una tabla Evento ItemDataBound Plantillas
HeaderTemplate ItemTemplate AlternatingItemTemplate SeparatorTemplate FooterTemplate
Paginación mediante programación Utilizar botones y canalizar con el evento
ItemCommand y la propiedad CommandName
![Page 65: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/65.jpg)
DataList Muestra la información de cada registro del origen de
datos en una fila del control Permite indicar que campos queremos mostrar mediante
plantillas Es la versión avanzada de Repeater Evento ItemDataBound, itemCreated, itemDataBound Enlazar los campos con Eval o Bind Plantillas
HeaderTemplate AlternatingItemTemplate SelectItemTemplate depende de la propiedad SelectedIndex ItemTemplate InsertTemplate EditItemTemplate SeparatorTemplate FooterTemplate Encabezado y Pie no admiten databound pero sí mediante código
65
![Page 66: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/66.jpg)
GridView
66
Muestra información en formato tabla Esta formado por una colección de GridViewRow (Filas)
y DatacontrolField (Columnas) que dan lugar a DataControlFieldCell (Celdas)
Cada Fila contiene una colección de celdas (cell) Formato se puede dar mediante el asistente Evento RowDataBound para manipulara elementos
GridViewRow Trabajar con Plantillas
Convertir columna en plantilla Dentro de cada plantilla de columna tenemos ItemTemplate,
EditItemTemplate Bind,Eval manualmente o desde Etiqueta inteligente
Mostrar información en el píe del controlActivarlo por columna ShowFooter=trueutilizar en el evento RowDataBounde.row.type=DataControlRowType.Footer
![Page 67: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/67.jpg)
DetailsView Muestra únicamente un registro de un origen de datos Permite navegar por los registros con la propiedad
AllowPaging Se utiliza junto a Gridview para crear formularios
“maestro/detalle” Evento DataBound, se dispara cuando tiene datos.
Manipular DataItem del tipo System.data.DataRowView Trabajar con Plantillas
Agregar columnas de Plantilla Utilizar funciones dentro del código ASPX
67
![Page 68: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/68.jpg)
FormsView Similar a Details View, pero con más funcionalidad Permite la edición de plantillas para los distintos
modos, selección, edición e inserción Acceso a los controles desde el código con Findcontrol Plantillas
ItemTemplate HeaderTemplate FooterTemplate EmptyDataTemplate PagerTemplate EditItemTemplate/IsertItemTemplate
68
![Page 69: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/69.jpg)
5 ADO.NET
Objeto Connection
Objeto Command
Objeto Reader
Objeto DataAdapter
Objeto DataSet
Data Designers y Data Binding
69
![Page 70: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/70.jpg)
Presentación - Estructura ADO.NET
70
![Page 71: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/71.jpg)
Introducción Objetos de acceso a datos conectados
Connection Command
Objetos de acceso a datos desconecatados DataAdapter DataSet
71
![Page 72: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/72.jpg)
Objeto Connection 1 Establecer el tipo de conexión
SQLConnection, bases de datos SQL OleDbConnection, Access y SQL antigüos ODBCConnection, Otro tipo de base de datos
2 Especificar el origen de datos ConnectionString, información sobre el origen de datos Varia un poco de SQL, OLEDB y ODBC
3 Conectar con el origen de datos Método OPEN, antes de poder trabajar con la base de datos Método Close, al finalizar los trabajos con la base de datos
72
![Page 73: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/73.jpg)
Objeto Connection
Propiedad ConnectionString, parámetros para establecer la conexión con la base de datos
Guardar la cadena en web.config Facilita los cambios de ubicación de la base de datos<configuration>
<connectionStrings><add name=“BaseDatos”….
</connectionStrings><configuration>
Obtener desde el código la cadena de conexiónDim cadena as stringcadena=ConfigurationManager.ConnectionStrings(“Base
Datos”).tostring
73
![Page 74: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/74.jpg)
SQL Conecction Establecer acceso a bases de datos SQL
Server 200 o posterior Ejemplo SqlConnection
dim conSql as new sqlClient.sqlconnection()conSQL.conectionString=“Integrated security=true; data source=localhost; Catalog=Pubs;conSql.Open()
74
![Page 75: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/75.jpg)
SqlClient ConnectionString
Nombre Descripción Por Defecto
Connect TimeoutTiempo antes de que de error 15 seg
Initial CatalogNombre de la base de datos
User IdCuenta de Sql para iniciar
Psw Contraseña de Sql
Data Source Nombre del servidor
Trusted Connection
Conexión integrada de Windows False
75
![Page 76: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/76.jpg)
OleDbConnection Similar a SQLConnection ConnectionString casi igual que en ADO
Dim conAccess as New OleDb.OledbConnection()
conAccess.connectionString=“Provider = Microsoft.Jet.Oledb.4.0;Data Source= c:\Nortwith.mdb”
conAccess.Open
Nombre Descripción
DataSource Ubicación de la base de datos
File Name Ubicación del fichero que contiene la cadena de conexión
Provider Driver para acceder a la base de datos
76
![Page 77: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/77.jpg)
Objeto Command Ejecutar una instrucción contra la base de
datos Necesita
una conexión abierta válida (Objeto Connection) una sentencia SQl válida (Propiedad
CommandText) Definir correctamente el tipo (Propiedad
CommandType)
77
![Page 78: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/78.jpg)
Creando el objeto Command Llamando al constructor y pasando como parámetro la
conexión(conSQL definida previamente)Dim commSQL as new SqlCliente.SqlCommand()commSql.Connection=conSQLcommSql.CommandText=“Select count(*) from galeria”commSQl.CommandType=CommandType.Text
Utilizando el método CreateCommand del objeto conexión (cn definida previamente)Dim cmd as dbcommand = cn.CreateCommandcmd.CommandText=“Select count(*) from galeria”cmd.CommandType=CommandType.Text
78
![Page 79: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/79.jpg)
Ejecutando el objeto Command Solo se puede ejecutar con una conexión abierta ExecuteReader cuando devuelve información en un
objeto SqlDataReader o OleDbDataReader ExecuteScalar cuando la consulta devuelve un único
valor (la primera columna de la primera fila) ExecuteNonQuery, cuando no devuelve registros solo el
número de filas afectadas ExecuteXMLReader,solo válido para SqlCommand, en la
instrucción contiene la clausula For XMLmessageBox.Show(commSql.ExecuteScalar().tostring)
79
![Page 80: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/80.jpg)
Objeto DataReader
Conjunto de datos de solo lectura Eficiente porqué solo contiene un registro en
memoria Instancia mediante el método ExecuteReder Se puede acceder a la información mediante el
nombre de la columna o la posición Método Close, para liberar el DataReader Usar métodos de tipo de datos para obtener el
dato en el formato deseado (Ej: getString) NextResult, en el caso de que se devuelvan varios
conjuntos de resultados
80
![Page 81: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/81.jpg)
DataTable Es una tabla que contiene información en
memoria Contiene objetos DataColumns y DataRows Ejemplo
Definir la tablaDim tbLibro as new Datatable(“libro”)
Definir la columnaDim titulo as new DataColumn(“titulo”)
Establecer PropiedadesTitulo.datatype=getType(“string”)Titulo.MaxLength=50
Añadir la columnaTblibro.Columns.Add(titulo)
81
![Page 82: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/82.jpg)
Data View Permite filtrar y ordenar datos de un dataTable Un DataTable puede tener varios DataView Contiene propiedades AllowDelete, AllowEdit, AllowNew Ejemplo de ordenación y filtro
(suponiendo una tabla de nombre empleado y un control gridView de nombre gv)
Dim vista as New DataView(empleado)Vista.sort=“LastName ASC”Vista.RowFilter=“LastName like ‘A%’ “Gv.DataSource=viewGv.DataBind
82
![Page 83: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/83.jpg)
6 ADO.NET Desconectado
DataAdapter
DataSet
83
![Page 84: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/84.jpg)
DataAdapter Sirve para intercambiar datos entre un origen de datos
y un DataSet Crear una DataAdapter con un objeto Connection
existeneDim conSql as new SqlClient.SqlConnection()...Dim commSql as new SqlCliente.SqlCommand()...Dim da as new sqlclient.SqlDataAdapter()Da.selectCommand=commSql
84
![Page 85: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/85.jpg)
DataAdapter II Usar una conexión cerradaPrivate conSql as sqlClient.SqlConnection
Private Sub Form1_Load(....
conSql=new SqlClient.SqlConnection
conSql.ConnectionString= ....
End Sub
Private Sub Button1_Click(....
dim da as new sqlClient.sqlDataAdapter ( “Select * from foto”, conSql)
End Sub
85
![Page 86: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/86.jpg)
Uso de DataAdapter Fill Rellenar un objeto DataTable o DataSet Se pueden rellenar varios objetos con el mismo
dataAdapterDim conSql as new SqlClient.SqlConnection()
...
Dim da as new sqlclient.SqlDataAdapter(“select * from Foto”, conSql)
Dim ds as new DataSet()
Da.Fill(ds,”Foto”)
‘trabajar con la información de ds
Da.update(ds,”Foto”)
86
![Page 87: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/87.jpg)
Objeto DataSet
System.Data Cache desconectada de datos en memoria Contiene
DataTable, tablas en memoria Columns Rows
DataRelations, relaciones entre tablas Creación en tiempo de diseño
Agregar nuevo elemento DataSet Creación en tiempo de ejecución
Dim ds as new DataSet
87
![Page 88: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/88.jpg)
Rellenando DataSet Se accede a un origen de datos mediante un
DataAdapter y se rellena la información en un dataTable dentro de un DataSet
Dim conSql as new SqlClient.SqlConnection()
...
Dim da as new sqlclient.SqlDataAdapter(“select * from Foto”, conSql)
Dim ds as new DataSet()
Da.Fill(ds,”Foto”)
‘trabajar con la información de ds
Da.update(ds,”Foto”)
88
![Page 89: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/89.jpg)
Creando DataSet En tiempo de Diseño En tiempo de ejecución a partir de un dataAdapter Un dataSet que contiene un DataTable personalizadoDim ds as New DataSet
Dim dt as New DataTable(“Conf”)
Dt.Columns.Add(“idAutor”,System.type.getType(“system.int32”))
Dt.Columns.Add(“nom”,System.type.getType(“system.string”))
Ds.Tables.Add(dt)
89
![Page 90: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/90.jpg)
Actualizar data en un DataSet Añadir registros
Crear una nueva fila con el objeto DataRow Rellenar las columnas con los datos Añadir la fila a la tabla del data set mediante el
método Add del DataTableDim dr as DataRow=ds.Tables(“Titulos”).NewRow
Dr(“Titulo”)=“Nuevo libro”
Dr(“Tipo”)=“Negocios”
Ds.Tables(“Titulos).Rows.Add(dr)
90
![Page 91: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/91.jpg)
Editar Registros Llamar al método BeginEdit Modificar el valor de las columnas Utilizar EndEdit, CancelEdit para aceptar o cancelar las
modificacionesDim dr as dataRow=ds.Tables(“Titulos”).Rows(0)
Dr.BeginEdit()
Dr(“titulo”)=dr(“titulo”).tostring & “1”
Dr.EndEdit
91
![Page 92: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/92.jpg)
Eliminar Datos DataRows.Remove, elimina los datos definitivamente de
un DataSet DataRow.Delete, lo marca para eliminar, pero llamando a
RejectChanges los desmarcará
Dim dr as dataRow=ds.Tables(“Titulos”).Rows(0)
ds.Tables(“Titulos”).rows.remove(dr)
92
![Page 93: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/93.jpg)
Actualizar datos en el origen Método Update del objeto DataAdapter
DataSet que contiene los datos que se han modificado Nombre de DataTable donde se han realizado los cambios.
Generación de comandos de actualización de forma automática con CommandBuilder InsertCommand, UpdateCommand, DeleteCommand
Dim sqlCommBuild as new sqlCommandBuilder(da)
Msgbox(sqlcommBuild.GetInsertCommand.CommandText)
Da.update(ds,”Titulo”)
93
![Page 94: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/94.jpg)
Uso de GUID
Global Unique Identifier, identificador global único Evita claves primarias duplicadas Ejemplo
Suponiendo la tabla empleado con los campos idempleado (clave primaria), apellido y nombreEmpleado.rows.add(guid.newGuid(),”Lopez”,”pablo”)
94
![Page 95: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/95.jpg)
7 Procedimientos Almacenados
Introducción
DBParameter
95
![Page 96: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/96.jpg)
Introducción Utiliza el objeto Command para ejecutar un
procedimiento En SQL el nombre de los parámetros tienen
que coincidir con el nombre del procedimiento almacenado
En OLEDB tiene que coincidir la posición Propiedad Text de Command tiene que
contener el nombre del procedimientoDim cm as OLEDB.OLDBCommand= cn.CreateCommandcm.text=“LibrosEditorial”cm.CommandType=CommandType.StoreProcedure
96
![Page 97: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/97.jpg)
Objeto dbParameter Propiedades
Direction, indica si el valor es solo de entrada, solo de salida o de entrada/salida
IsNullable, si acepta nulos o no dbType, tipo del parámetro ParameterName, nombre del parámetro Value, valor
Métodos ToString, muestra el valor de ParameterName
97
![Page 98: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/98.jpg)
Definición y uso Creación, utilizando el método CreatePArameter
del objeto dbcommand Dim p as dbparameter=cmd.createparameter
Definición, asignar valores a las propiedades paramname, value, dbtype P.parametername=“@libro” P.value=33 P.dbtype=SqlDbtype.int P.dbtype=OleDbType.BigInt
Asignación del parámetro al command Método Add cmd.parameter.add(p) Método AddWithValue cmd.parameter.addwithvalue(p,33)
98
![Page 99: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/99.jpg)
8 Gestión de errores
Try..Catch..Finally
Throw
99
![Page 100: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/100.jpg)
Try-Catch Canalizar errores
Evitar mensajes poco explicativos Responder adecuadamente al error
Try...Catch...Finally Código a canalizar en caso de error Finally se ejecuta siempre
Gestión de error en función del tipo de Exception Según el error que genera poder programar una
respuesta distinta Generar una excepción con Throw
Throw New System.Exception(“Error manual")
100
![Page 101: Trabajar con bases de datos desde ASP.NET](https://reader033.vdocumento.com/reader033/viewer/2022061521/557ae60dd8b42a63778b5441/html5/thumbnails/101.jpg)
SQLException
Se genera cuando SQL devuelve un error Contiene una instancia de SQLError
Errors Colección de errores Errors.Count número de errores devueltos Errors(i).Message mensaje de error i Errors(i).LineNumber línea del error i Errors(i).Source Origen del error i Errors(i).Procedure Procedimiento del error i
101