SlideShare una empresa de Scribd logo
1 de 101
Fechas:             26/10/09 – 12/11/09
   Horario:            De 15:50 a 19:15 horas Lunes -Jueves

   Profesor:           Javier Roig Garro
                       dunbit@hotmail.com




ACCESO A BASES DE DATOS SQL
                CON ASP.NET
               Visual Studio .NET 2005 - ASP .NET - SQL 2005
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
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
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
Elementos del núcleo de .NET
a.   .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
.NET FrameWork – Componentes
       Commond Languaje Runtime (CLR)
       . NET Framework library
       ADO .NET
       ASP .NET
       Interfaz de usuario




    6
Commond Language Runtime

                 Descripción
                     Simplifica desarrollo por un
                      entorno robusto
                     Soporta múltiples lenguajes
                     Proporciona un entorno
                      gestionado (Garbage
                      collection, seguridad)




7
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
.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
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
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
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
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
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
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
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
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
Conceptos Acceso a Datos

   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




    18
Tipos de Controles

   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

    19
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.Data
           Imports System.Data.SqlClient
           Using System.Data
           Using System.Data.SQLClient




    20
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
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
Tipos de controles servidor
    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




    23
Controles de servidor HTML
    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”>




    24
Controles WEB de Servidor
    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




    25
Guardar el estado. ViewState

        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>




26
Controles Comunes
    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




    27
Controles WEB de Servidor - Integrados

 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                 Lista de elementos de selección
                       size=“5”></select>      múltiple
28
Controles WEB de Servidor – Integrados



 Control de servidor     Equivalente HTML              Función
 <asp:panel>           <div></div>          Panel contenedor de controles

 <asp:radiobutton>     <input               Botón de radio
                       type=radiobutton>
 <asp:table>           <table> </table>     Crea una tabla
 <asp:textbox>         <input type=text>    Cuadro de texto
 <asp:literal>         No tiene             Texto




29
Controles WEB de Servidor - Validación



         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
 RegularExpressionValidat   Tiene que cumplir un patrón
 or
 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




30
Controles WEB de Servidor - Enriquecidos



            Control                       Función
 AdRotator            Secuencia de imágenes, aleatorias o no

 Calendar             Muestra un calendario




31
Controles WEB de Servidor - Enlazados



            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




32
Controles Comunes
    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




    33
Controles Comunes II

        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

34
Controles Comunes III
    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




    35
Controles Navegación
    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



    36
Controles Enlazados
   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




                  37
Controles Enlazados II
   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




                  38
Eventos – Qué son eventos
    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




    39
Eventos Cliente
    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')"



    40
Eventos Servidor
    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”>




    41
Creación de Eventos
   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



    42
Creación de Eventos


   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




    43
Eventos de página
    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




    44
Trabajar con eventos PostBack
    El evento Page_Load se ejecuta cada llamada
    Propiedad page.isPostBack, determina si ya se ha
     enviado al servidor
     If not Page.IsPostBack then
         „ Ejecuta solo la primera vez
     End If
     If (!Page.IsPostBack)
     {
         //ejecuta la primera carga
     }




    45
Trabajar con controles comunes
    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..


    46
Trabajar con Listas
    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




    47
Trabajar con Controles de Navegación
    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




    48
3 DataSource

              Conceptos
       Tipos de controles
       Data Set con Tipo




49
Controles Origen de Datos
   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


50
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
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
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
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
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
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ón
            Dim taAutor as new BibliotecaTableAdapters.AutorTableAdapter
            Girdview1.datasource=taAutor.GetAutor



    56
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
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
Espacio de nombres System.ComponetModel
    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.Compone
         ntModel.DataObjectMethodType.Select, True)> _
         Public Function GetListaAutor() As Biblioteca.AutorDataTable
           Return AutorAdapter.GetAutor
         End Function

    59
DataSet con Procedimientos Almacenados
    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




    60
4 Controles de presentación de
                              datos
                               DataBinding
                       Controles Enlazados




61
DataBinding
    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.




    62
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 inteligente

    63
Repeater
    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
    64
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
GridView
    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 control
         Activarlo por columna  ShowFooter=true
         utilizar en el evento
         RowDataBounde.row.type=DataControlRowType.Footer
    66
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
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
5 ADO.NET

                   Objeto Connection
                    Objeto Command
                       Objeto Reader
                  Objeto DataAdapter
                      Objeto DataSet
        Data Designers y Data Binding




69
Presentación - Estructura ADO.NET




70
Introducción
    Objetos de acceso a datos conectados
        Connection
        Command
    Objetos de acceso a datos desconecatados
        DataAdapter
        DataSet




    71
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
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ón
         Dim cadena as string
         cadena=ConfigurationManager.ConnectionStrings(“BaseDatos”
           ).tostring




73
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
SqlClient ConnectionString


     Nombre            Descripción             Por Defecto
                       Tiempo antes de que
     Connect Timeout                           15 seg
                       de error
                       Nombre de la base de
     Initial Catalog
                       datos
                       Cuenta de Sql para
     User Id
                       iniciar
     Psw               Contraseña de Sql

     Data Source       Nombre del servidor
     Trusted           Conexión integrada de
                                               False
     Connection        Windows
75
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

                                 Ubicación del fichero que contiene la cadena
         File Name
                                 de conexión

         Provider                Driver para acceder a la base de datos



    76
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
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=conSQL
     commSql.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.CreateCommand
     cmd.CommandText=“Select count(*) from galeria”
     cmd.CommandType=CommandType.Text




    78
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 XML
     messageBox.Show(commSql.ExecuteScalar().tostring)




    79
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
DataTable
    Es una tabla que contiene información en memoria
    Contiene objetos DataColumns y DataRows
    Ejemplo
     Definir la tabla
        Dim tbLibro as new Datatable(“libro”)
     Definir la columna
        Dim titulo as new DataColumn(“titulo”)
     Establecer Propiedades
        Titulo.datatype=getType(“string”)
        Titulo.MaxLength=50
     Añadir la columna
        Tblibro.Columns.Add(titulo)




    81
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=view
     Gv.DataBind




    82
6 ADO.NET Desconectado

                    DataAdapter
                        DataSet




83
DataAdapter
        Sirve para intercambiar datos entre un origen de datos y un
         DataSet
        Crear una DataAdapter con un objeto Connection existene
            Dim conSql as new SqlClient.SqlConnection()
            ...
            Dim commSql as new SqlCliente.SqlCommand()
            ...
            Dim da as new sqlclient.SqlDataAdapter()
            Da.selectCommand=commSql




    84
DataAdapter II
    Usar una conexión cerrada
Private 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
Uso de DataAdapter
    Fill Rellenar un objeto DataTable o DataSet
    Se pueden rellenar varios objetos con el mismo dataAdapter
         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”)




    86
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
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
Creando DataSet
    En tiempo de Diseño
    En tiempo de ejecución a partir de un dataAdapter
    Un dataSet que contiene un DataTable personalizado
Dim 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
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 DataTable
     Dim dr as DataRow=ds.Tables(“Titulos”).NewRow
     Dr(“Titulo”)=“Nuevo libro”
     Dr(“Tipo”)=“Negocios”
     Ds.Tables(“Titulos).Rows.Add(dr)




    90
Editar Registros
    Llamar al método BeginEdit
    Modificar el valor de las columnas
    Utilizar EndEdit, CancelEdit para aceptar o cancelar las
     modificaciones
Dim dr as dataRow=ds.Tables(“Titulos”).Rows(0)
Dr.BeginEdit()
Dr(“titulo”)=dr(“titulo”).tostring & “1”
Dr.EndEdit




    91
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
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
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 nombre
         Empleado.rows.add(guid.newGuid(),”Lopez”,”pablo”)




    94
7 Procedimientos Almacenados

                           Introducción
                          DBParameter




95
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 procedimiento
     Dim cm as OLEDB.OLDBCommand= cn.CreateCommand
     cm.text=“LibrosEditorial”
     cm.CommandType=CommandType.StoreProcedure


    96
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
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
8 Gestión de errores

              Try..Catch..Finally
                          Throw




99
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
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

Más contenido relacionado

La actualidad más candente

Entrenamiento en Acceso a Datos con ASP.NET
Entrenamiento en Acceso a Datos con ASP.NETEntrenamiento en Acceso a Datos con ASP.NET
Entrenamiento en Acceso a Datos con ASP.NETHaaron Gonzalez
 
Dce2 Introduccion Asp.Net
Dce2 Introduccion Asp.NetDce2 Introduccion Asp.Net
Dce2 Introduccion Asp.NetEsteban Soraire
 
Curso programación páginas web con ASP.NET
Curso programación páginas web con ASP.NETCurso programación páginas web con ASP.NET
Curso programación páginas web con ASP.NETEuroinnova Formación
 
Desarrollo de Aplicaciones Web con ASP.NET MVC5
Desarrollo de Aplicaciones Web con ASP.NET MVC5Desarrollo de Aplicaciones Web con ASP.NET MVC5
Desarrollo de Aplicaciones Web con ASP.NET MVC5Oscar Gensollen
 
Asp.net conceptos
Asp.net conceptosAsp.net conceptos
Asp.net conceptosXstremsX
 
Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4
Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4
Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4Rodolfo Finochietti
 
Presentacion sobre asp
Presentacion sobre aspPresentacion sobre asp
Presentacion sobre aspkarenReyes152
 
Examen febrero 2017-2018_daw_daw_solucion_ (1)
Examen febrero 2017-2018_daw_daw_solucion_ (1)Examen febrero 2017-2018_daw_daw_solucion_ (1)
Examen febrero 2017-2018_daw_daw_solucion_ (1)jomadega1
 
ASP.NET MVC (2011)
ASP.NET MVC (2011)ASP.NET MVC (2011)
ASP.NET MVC (2011)wildtango
 
Jsp servlet- Tutorial BD Conexión
Jsp servlet- Tutorial BD ConexiónJsp servlet- Tutorial BD Conexión
Jsp servlet- Tutorial BD ConexiónPattzy Montero
 
Asp .net
Asp .netAsp .net
Asp .netmellcv
 
ASP .NET MVC: Desarrollo web con el patrón MVC
ASP .NET MVC: Desarrollo web con el patrón MVCASP .NET MVC: Desarrollo web con el patrón MVC
ASP .NET MVC: Desarrollo web con el patrón MVCriojadotnet
 

La actualidad más candente (19)

Asp.net
Asp.netAsp.net
Asp.net
 
Tutorial ASP .NET
Tutorial ASP .NETTutorial ASP .NET
Tutorial ASP .NET
 
Entrenamiento en Acceso a Datos con ASP.NET
Entrenamiento en Acceso a Datos con ASP.NETEntrenamiento en Acceso a Datos con ASP.NET
Entrenamiento en Acceso a Datos con ASP.NET
 
Dce2 Introduccion Asp.Net
Dce2 Introduccion Asp.NetDce2 Introduccion Asp.Net
Dce2 Introduccion Asp.Net
 
Curso programación páginas web con ASP.NET
Curso programación páginas web con ASP.NETCurso programación páginas web con ASP.NET
Curso programación páginas web con ASP.NET
 
Desarrollo de Aplicaciones Web con ASP.NET MVC5
Desarrollo de Aplicaciones Web con ASP.NET MVC5Desarrollo de Aplicaciones Web con ASP.NET MVC5
Desarrollo de Aplicaciones Web con ASP.NET MVC5
 
Asp.net conceptos
Asp.net conceptosAsp.net conceptos
Asp.net conceptos
 
Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4
Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4
Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4
 
Presentacion sobre asp
Presentacion sobre aspPresentacion sobre asp
Presentacion sobre asp
 
1. Introduccion A Asp .Net
1.  Introduccion A Asp .Net1.  Introduccion A Asp .Net
1. Introduccion A Asp .Net
 
Examen febrero 2017-2018_daw_daw_solucion_ (1)
Examen febrero 2017-2018_daw_daw_solucion_ (1)Examen febrero 2017-2018_daw_daw_solucion_ (1)
Examen febrero 2017-2018_daw_daw_solucion_ (1)
 
Rails intro
Rails introRails intro
Rails intro
 
5-Unidad 2: Diseño de Vista-2.2 Para Web
5-Unidad 2: Diseño de Vista-2.2 Para Web5-Unidad 2: Diseño de Vista-2.2 Para Web
5-Unidad 2: Diseño de Vista-2.2 Para Web
 
Asp.net
Asp.netAsp.net
Asp.net
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
ASP.NET MVC (2011)
ASP.NET MVC (2011)ASP.NET MVC (2011)
ASP.NET MVC (2011)
 
Jsp servlet- Tutorial BD Conexión
Jsp servlet- Tutorial BD ConexiónJsp servlet- Tutorial BD Conexión
Jsp servlet- Tutorial BD Conexión
 
Asp .net
Asp .netAsp .net
Asp .net
 
ASP .NET MVC: Desarrollo web con el patrón MVC
ASP .NET MVC: Desarrollo web con el patrón MVCASP .NET MVC: Desarrollo web con el patrón MVC
ASP .NET MVC: Desarrollo web con el patrón MVC
 

Similar a Trabajar con bases de datos desde ASP.NET

Similar a Trabajar con bases de datos desde ASP.NET (20)

Introducción-a-Microsoft.NET-[parte2]
Introducción-a-Microsoft.NET-[parte2]Introducción-a-Microsoft.NET-[parte2]
Introducción-a-Microsoft.NET-[parte2]
 
Visual studio.net
Visual studio.netVisual studio.net
Visual studio.net
 
Sistema Ado.Net
Sistema Ado.NetSistema Ado.Net
Sistema Ado.Net
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
programacion
programacionprogramacion
programacion
 
ADO .net
ADO .netADO .net
ADO .net
 
Migracion a Visual Basic .NET
Migracion a Visual Basic .NETMigracion a Visual Basic .NET
Migracion a Visual Basic .NET
 
Oracle en windows
Oracle en windowsOracle en windows
Oracle en windows
 
Biblioteca de clase
Biblioteca de claseBiblioteca de clase
Biblioteca de clase
 
Introduccion.net
Introduccion.net Introduccion.net
Introduccion.net
 
Dce1 introduccion microsoft.net
Dce1 introduccion microsoft.netDce1 introduccion microsoft.net
Dce1 introduccion microsoft.net
 
Proveedores nativos
Proveedores nativosProveedores nativos
Proveedores nativos
 
C# desde cero sesion 2
C# desde cero   sesion 2C# desde cero   sesion 2
C# desde cero sesion 2
 
Programacion =)
Programacion =)Programacion =)
Programacion =)
 
Republica bolivariana de venezuela 2
Republica bolivariana de venezuela 2Republica bolivariana de venezuela 2
Republica bolivariana de venezuela 2
 
Ado.net
Ado.netAdo.net
Ado.net
 
Presentacion de Visual Basic
Presentacion de Visual BasicPresentacion de Visual Basic
Presentacion de Visual Basic
 
Glosario vs .net
Glosario vs .netGlosario vs .net
Glosario vs .net
 
Clase ix
Clase ixClase ix
Clase ix
 
Tecnologia Microsoft .Net - [Asp .Net - Parte 1]
Tecnologia Microsoft .Net - [Asp .Net - Parte 1]Tecnologia Microsoft .Net - [Asp .Net - Parte 1]
Tecnologia Microsoft .Net - [Asp .Net - Parte 1]
 

Más de Javier Roig

Taller de competencia digital para el empleo
Taller de competencia digital para el empleoTaller de competencia digital para el empleo
Taller de competencia digital para el empleoJavier Roig
 
Competencia digital participación social
Competencia digital participación socialCompetencia digital participación social
Competencia digital participación socialJavier Roig
 
Saca partido a tus bases de datos
Saca partido a tus bases de datosSaca partido a tus bases de datos
Saca partido a tus bases de datosJavier Roig
 
Smartphone y geoposicionamiento GPS
Smartphone y geoposicionamiento GPSSmartphone y geoposicionamiento GPS
Smartphone y geoposicionamiento GPSJavier Roig
 
Aprende a usar tu SmartPhone
Aprende a usar tu SmartPhoneAprende a usar tu SmartPhone
Aprende a usar tu SmartPhoneJavier Roig
 
Herramientas web
Herramientas webHerramientas web
Herramientas webJavier Roig
 
Herramientas en Internet para tu negocio
Herramientas en Internet para tu negocioHerramientas en Internet para tu negocio
Herramientas en Internet para tu negocioJavier Roig
 
Gestión de las redes sociales y de las nuevas tecnolgías
Gestión de las redes sociales y de las nuevas tecnolgíasGestión de las redes sociales y de las nuevas tecnolgías
Gestión de las redes sociales y de las nuevas tecnolgíasJavier Roig
 
Redes domésticas seguras
Redes domésticas segurasRedes domésticas seguras
Redes domésticas segurasJavier Roig
 
Saca Partido A Tu Ordenador
Saca Partido A Tu OrdenadorSaca Partido A Tu Ordenador
Saca Partido A Tu OrdenadorJavier Roig
 
Introducción a la programación
Introducción a la programaciónIntroducción a la programación
Introducción a la programaciónJavier Roig
 

Más de Javier Roig (11)

Taller de competencia digital para el empleo
Taller de competencia digital para el empleoTaller de competencia digital para el empleo
Taller de competencia digital para el empleo
 
Competencia digital participación social
Competencia digital participación socialCompetencia digital participación social
Competencia digital participación social
 
Saca partido a tus bases de datos
Saca partido a tus bases de datosSaca partido a tus bases de datos
Saca partido a tus bases de datos
 
Smartphone y geoposicionamiento GPS
Smartphone y geoposicionamiento GPSSmartphone y geoposicionamiento GPS
Smartphone y geoposicionamiento GPS
 
Aprende a usar tu SmartPhone
Aprende a usar tu SmartPhoneAprende a usar tu SmartPhone
Aprende a usar tu SmartPhone
 
Herramientas web
Herramientas webHerramientas web
Herramientas web
 
Herramientas en Internet para tu negocio
Herramientas en Internet para tu negocioHerramientas en Internet para tu negocio
Herramientas en Internet para tu negocio
 
Gestión de las redes sociales y de las nuevas tecnolgías
Gestión de las redes sociales y de las nuevas tecnolgíasGestión de las redes sociales y de las nuevas tecnolgías
Gestión de las redes sociales y de las nuevas tecnolgías
 
Redes domésticas seguras
Redes domésticas segurasRedes domésticas seguras
Redes domésticas seguras
 
Saca Partido A Tu Ordenador
Saca Partido A Tu OrdenadorSaca Partido A Tu Ordenador
Saca Partido A Tu Ordenador
 
Introducción a la programación
Introducción a la programaciónIntroducción a la programación
Introducción a la programación
 

Último

Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfKarinaCambero3
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Marketing BRANDING
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptxHugoGutierrez99
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDAVIDROBERTOGALLEGOS
 
La tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadLa tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadEduardoSantiagoSegov
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxLINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxkimontey
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar24roberto21
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdfsharitcalderon04
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointValerioIvanDePazLoja
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxhasbleidit
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024u20211198540
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)JuanStevenTrujilloCh
 

Último (20)

Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdf
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptx
 
La tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadLa tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedad
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxLINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdf
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power Point
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)
 

Trabajar con bases de datos desde ASP.NET

  • 1. Fechas: 26/10/09 – 12/11/09 Horario: De 15:50 a 19:15 horas Lunes -Jueves Profesor: Javier Roig Garro dunbit@hotmail.com ACCESO A BASES DE DATOS SQL CON ASP.NET Visual Studio .NET 2005 - ASP .NET - SQL 2005
  • 2. 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
  • 3. 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
  • 4. 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
  • 5. Elementos del núcleo de .NET a. .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
  • 6. .NET FrameWork – Componentes  Commond Languaje Runtime (CLR)  . NET Framework library  ADO .NET  ASP .NET  Interfaz de usuario 6
  • 7. Commond Language Runtime  Descripción  Simplifica desarrollo por un entorno robusto  Soporta múltiples lenguajes  Proporciona un entorno gestionado (Garbage collection, seguridad) 7
  • 8. 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
  • 9. .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
  • 10. 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
  • 11. 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
  • 12. 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
  • 13. 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
  • 14. 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
  • 15. 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
  • 16. 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
  • 17. 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
  • 18. Conceptos Acceso a Datos  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 18
  • 19. Tipos de Controles  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 19
  • 20. 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.Data Imports System.Data.SqlClient Using System.Data Using System.Data.SQLClient 20
  • 21. 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
  • 22. 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
  • 23. Tipos de controles servidor  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 23
  • 24. Controles de servidor HTML  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”> 24
  • 25. Controles WEB de Servidor  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 25
  • 26. Guardar el estado. ViewState  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> 26
  • 27. Controles Comunes  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 27
  • 28. Controles WEB de Servidor - Integrados 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 Lista de elementos de selección size=“5”></select> múltiple 28
  • 29. Controles WEB de Servidor – Integrados Control de servidor Equivalente HTML Función <asp:panel> <div></div> Panel contenedor de controles <asp:radiobutton> <input Botón de radio type=radiobutton> <asp:table> <table> </table> Crea una tabla <asp:textbox> <input type=text> Cuadro de texto <asp:literal> No tiene Texto 29
  • 30. Controles WEB de Servidor - Validación 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 RegularExpressionValidat Tiene que cumplir un patrón or 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 30
  • 31. Controles WEB de Servidor - Enriquecidos Control Función AdRotator Secuencia de imágenes, aleatorias o no Calendar Muestra un calendario 31
  • 32. Controles WEB de Servidor - Enlazados 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 32
  • 33. Controles Comunes  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 33
  • 34. Controles Comunes II  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 34
  • 35. Controles Comunes III  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 35
  • 36. Controles Navegación  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 36
  • 37. Controles Enlazados  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 37
  • 38. Controles Enlazados II  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 38
  • 39. Eventos – Qué son eventos  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 39
  • 40. Eventos Cliente  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')" 40
  • 41. Eventos Servidor  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”> 41
  • 42. Creación de Eventos  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 42
  • 43. Creación de Eventos  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 43
  • 44. Eventos de página  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 44
  • 45. Trabajar con eventos PostBack  El evento Page_Load se ejecuta cada llamada  Propiedad page.isPostBack, determina si ya se ha enviado al servidor If not Page.IsPostBack then „ Ejecuta solo la primera vez End If If (!Page.IsPostBack) { //ejecuta la primera carga } 45
  • 46. Trabajar con controles comunes  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.. 46
  • 47. Trabajar con Listas  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 47
  • 48. Trabajar con Controles de Navegación  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 48
  • 49. 3 DataSource Conceptos Tipos de controles Data Set con Tipo 49
  • 50. Controles Origen de Datos  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 50
  • 51. 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
  • 52. 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
  • 53. 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
  • 54. 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
  • 55. 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
  • 56. 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ón Dim taAutor as new BibliotecaTableAdapters.AutorTableAdapter Girdview1.datasource=taAutor.GetAutor 56
  • 57. 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
  • 58. 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
  • 59. Espacio de nombres System.ComponetModel  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.Compone ntModel.DataObjectMethodType.Select, True)> _ Public Function GetListaAutor() As Biblioteca.AutorDataTable Return AutorAdapter.GetAutor End Function 59
  • 60. DataSet con Procedimientos Almacenados  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 60
  • 61. 4 Controles de presentación de datos DataBinding Controles Enlazados 61
  • 62. DataBinding  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. 62
  • 63. 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 inteligente 63
  • 64. Repeater  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 64
  • 65. 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
  • 66. GridView  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 control Activarlo por columna  ShowFooter=true utilizar en el evento RowDataBounde.row.type=DataControlRowType.Footer 66
  • 67. 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
  • 68. 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
  • 69. 5 ADO.NET Objeto Connection Objeto Command Objeto Reader Objeto DataAdapter Objeto DataSet Data Designers y Data Binding 69
  • 71. Introducción  Objetos de acceso a datos conectados  Connection  Command  Objetos de acceso a datos desconecatados  DataAdapter  DataSet 71
  • 72. 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
  • 73. 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ón Dim cadena as string cadena=ConfigurationManager.ConnectionStrings(“BaseDatos” ).tostring 73
  • 74. 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
  • 75. SqlClient ConnectionString Nombre Descripción Por Defecto Tiempo antes de que Connect Timeout 15 seg de error Nombre de la base de Initial Catalog datos Cuenta de Sql para User Id iniciar Psw Contraseña de Sql Data Source Nombre del servidor Trusted Conexión integrada de False Connection Windows 75
  • 76. 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 Ubicación del fichero que contiene la cadena File Name de conexión Provider Driver para acceder a la base de datos 76
  • 77. 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
  • 78. 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=conSQL commSql.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.CreateCommand cmd.CommandText=“Select count(*) from galeria” cmd.CommandType=CommandType.Text 78
  • 79. 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 XML messageBox.Show(commSql.ExecuteScalar().tostring) 79
  • 80. 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
  • 81. DataTable  Es una tabla que contiene información en memoria  Contiene objetos DataColumns y DataRows  Ejemplo Definir la tabla Dim tbLibro as new Datatable(“libro”) Definir la columna Dim titulo as new DataColumn(“titulo”) Establecer Propiedades Titulo.datatype=getType(“string”) Titulo.MaxLength=50 Añadir la columna Tblibro.Columns.Add(titulo) 81
  • 82. 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=view Gv.DataBind 82
  • 83. 6 ADO.NET Desconectado DataAdapter DataSet 83
  • 84. DataAdapter  Sirve para intercambiar datos entre un origen de datos y un DataSet  Crear una DataAdapter con un objeto Connection existene Dim conSql as new SqlClient.SqlConnection() ... Dim commSql as new SqlCliente.SqlCommand() ... Dim da as new sqlclient.SqlDataAdapter() Da.selectCommand=commSql 84
  • 85. DataAdapter II  Usar una conexión cerrada Private 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
  • 86. Uso de DataAdapter  Fill Rellenar un objeto DataTable o DataSet  Se pueden rellenar varios objetos con el mismo dataAdapter 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”) 86
  • 87. 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
  • 88. 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
  • 89. Creando DataSet  En tiempo de Diseño  En tiempo de ejecución a partir de un dataAdapter  Un dataSet que contiene un DataTable personalizado Dim 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
  • 90. 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 DataTable Dim dr as DataRow=ds.Tables(“Titulos”).NewRow Dr(“Titulo”)=“Nuevo libro” Dr(“Tipo”)=“Negocios” Ds.Tables(“Titulos).Rows.Add(dr) 90
  • 91. Editar Registros  Llamar al método BeginEdit  Modificar el valor de las columnas  Utilizar EndEdit, CancelEdit para aceptar o cancelar las modificaciones Dim dr as dataRow=ds.Tables(“Titulos”).Rows(0) Dr.BeginEdit() Dr(“titulo”)=dr(“titulo”).tostring & “1” Dr.EndEdit 91
  • 92. 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
  • 93. 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
  • 94. 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 nombre Empleado.rows.add(guid.newGuid(),”Lopez”,”pablo”) 94
  • 95. 7 Procedimientos Almacenados Introducción DBParameter 95
  • 96. 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 procedimiento Dim cm as OLEDB.OLDBCommand= cn.CreateCommand cm.text=“LibrosEditorial” cm.CommandType=CommandType.StoreProcedure 96
  • 97. 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
  • 98. 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
  • 99. 8 Gestión de errores Try..Catch..Finally Throw 99
  • 100. 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
  • 101. 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