Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Introduccin
Ernesto Calvo A.
ADO .NET es la ltima versin de la tecnologa de acceso a datos de Microsoft Es un conjunto de clases de la librera de clases del .NET Framework que nos permiten interactuar con cualquier tipo de base de datos desde cualquier tipo de aplicacin
Ernesto Calvo A.
En muchas aplicaciones, la conexin se cierra despus de que el usuario accede a los datos y vuelve a abrirse cuando el usuario reenva actualizaciones o realiza ms peticiones
Ernesto Calvo A.
Tipos
Datos relacionales
SQL Server, Oracle, Access XML Web service Archivos de extensin CVS (Comma Separated Value), Planillas del Tipo Microsoft Excel Microsoft Exchange Active Directory
Ernesto Calvo A.
Datos XML
Estructurados, no-jerrquicos
El entorno conectado
Ernesto Calvo A.
Uno en el cual los usuarios o aplicaciones tienen una conexin con un origen de datos
Ernesto Calvo A.
El entorno desconectado
Ernesto Calvo A.
Los usuarios recogen los datos de un origen de Datos (data source) Los usuarios modifican los datos localmente sin estar conectados a un origen de datos (data source)
Evolucin
Logica del cliente Logica de negocios Alamcen de Datos
Thin Client
1-Capa (monolitico)
Fat Client
Una evolucin , mas flexible de ADO Un sistema diseado para escenarios desconectados Un modelo de programacion con soporte de XML
Un conjunto de clases,interfaces,estructuras y enumeraciones para manejar los datos dentro del Framework .NET
Arquitectura de ADO.NET
Ernesto Calvo A.
Capa Presentacin
Windows Forms
MyApp.Exe
DataSet
Capa Negocio
Web Forms
IE
Capa Datos
Data Adapter Data Adapter
Business to Business
Ernesto Calvo A.
Ernesto Calvo A.
DataTable DataRelation
DataSet
XxxTransaction, por ej., SqlTransaction XxxError, por ej., SqlError XxxParameter, por ej., SqlParameter
Ernesto Calvo A.
XxxDataAdapter
SelectCommand UpdateCommand InsertCommand DeleteCommand
XxxConnection
sp_SELECT sp_UPDATE sp_INSERT
Ernesto Calvo A.
sp_DELETE
Connection
ADO .NET
ADO
Command
Recordset
Ernesto Calvo A.
XxxDataReader XxxDataAdapter
Client
Usando XML en un entorno desconectado con ADO .NET XML Web Services
1 4 5
Request data
2
DataSet DataSet
SQL query
Data Source
3 6
Qu es SQL?
Definicin: SQL es un lenguaje estndar que ha evolucionado hasta convertirse en el medio de mayor aceptacin para realizar consultas y modificar datos en una base de datos
Ernesto Calvo A.
Para especificar exactamente qu registros deseamos recuperar, utilizar SELECT Campo FROM Tabla Para limitar la seleccin de registros, utilizar SELECT * FROM Tabla WHERE Campo = "String" Para devolver registros en orden ascendente, utilizar SELECT * FROM Tabla ORDER BY Campo ASC SELECT Nombre FROM Empleados
Ernesto Calvo A.
Ejemplo
Ernesto Calvo A.
Temario
Ernesto Calvo A.
Eligiendo un Data Provider .NET Manejando una Conexin Atrapando Excepciones Agrupamiento de conexiones(Connection Pooling)
Ernesto Calvo A.
Ernesto Calvo A.
SQL Server Data Provider .NET Oracle Data Provider .NET OLE DB Data Provider .NET ODBC Data Provider .NET Gua para elegir un data provider .NET
Ernesto Calvo A.
Ernesto Calvo A.
Ernesto Calvo A.
Provider (solo para OLE DB ) Data Source Initial Catalog Integrated Security User ID/Password Persist Security Info
Ernesto Calvo A.
Usando los mtodos Open y Close Abriendo y Cerrando conexiones explicitamente Abriendo y Cerrando conexiones implicitamente. Usando el mtodo Dispose Usando mltiples conexiones
Ernesto Calvo A.
Ernesto Calvo A.
Escribir el cdigo a ejecutar dentro del bloque Try Escribir una sentencia Catch por cada excepcin especifica que deseamos atrapar Escribir un generico Catch para todas las excepciones Escribir una sentencia Finally para ejecutar cdigo independientemente que suceda Finalizar la excepcin con un bloque End Try
Ernesto Calvo A.
Temas:
Agrupamiento de conexiones(connection pooling)? Como trabaja un agrupamiento de conexiones en SQL Server OLE DB connection pooling SQL Server connection pooling
Ernesto Calvo A.
Ernesto Calvo A.
Es un fichero de configuracin, el cual puede usarse en tiempo de ejecucin para recuperar ciertos valores, los cuales puedes modificar una vez que el proyecto est compilado
1.- Agregar un archivo app.config al proyecto 2.- Agregar un bloque <appSettings> al final y configurarlo 3.- Seleccionar una clase o un Form 4.- Cargar el namespace: Imports System.Configuration 5.- Leer valor: Cad = ConfigurationManager.AppSettings("miConexion")
Ernesto Calvo A.
<?xml version="1.0" encoding="utf-8" ?> <configuration> </system.diagnostics> <appSettings> <add key ="miConexion" value = "Server=miServer;DataBase=miBD;Integrated Security=True"/> <add key ="comision" value ="10" /> </appSettings> </configuration>
Imports System.Configuration Public Function Conecta() As SqlConnection Dim cad As String = ConfigurationManager.AppSettings("miConexion") Dim oCn As New SqlConnection(cad) Return oCn End Function
Ernesto Calvo A.
Ernesto Calvo A.
Temario
Ernesto Calvo A.
Construyendo Objetos Command Ejecutando Command que retornan un solo valor Ejecutando Command que devuelven un conjunto de filas Ejecutar Command Compuesto por varias sentencias SQL Definiendo datos usando DDL (Data Definition Language) Manipulando datos usando DML(Data Manipulation Language) Usando Transacciones
Ernesto Calvo A.
El Objeto Command
Ernesto Calvo A.
Mtodos
Server Explorer
View, Server Explorer (Ctrl+Alt+S) Crear Store Procedures Drag n drop stored procedure
Ernesto Calvo A.
Introduccin
Las sentencias SQL y los stored procedures tienen parametros de entrada(input), salida(output) y valores de retorno(return value) A travs de la coleccin parameters de los objetos command podemos configurar, dando valores y recuperar estos parametros SqlParameter, OleDbParameter ParameterName, DbType, Size, Direction
Ernesto Calvo A.
Propiedades
Ejemplo
Dim p1 As new SqlParameter(@CatName, _ SqlDbType.Char, 15) p1.Direction = ParameterDirection.Output cmdCountProds.Parameters.Add(p1) cmd.Parameters.AddWithValue("@IdCod", 12)
Ejemplo
Ernesto Calvo A.
Porqu retornar un solo valor en un Command? Como ejecutar un Command que devuelva un solo valor Como recuperar parametros Output y Return Values
Ernesto Calvo A.
Introduccin
ADO .NET es mas eficiente que en ADO, donde se retorna un grupo de registros Unidades en stock para un producto en particular Cuantos productos hay? COUNT, MAX, MIN, AVERAGE
Ejemplos
Ernesto Calvo A.
Introduccin
Ejemplo
Ernesto Calvo A.
Como leer un parametro Output desde un objeto Command cmd.Parameters("@CatName").Value Como obtener un Return Value de un Stored Procedure cmd.Parameters("@RETURN_VALUE").Value
Ernesto Calvo A.
Retornando filas
Ernesto Calvo A.
DataReader
El mtodo ExecuteReader
Ernesto Calvo A.
DataReader
Ernesto Calvo A.
Un objeto de este tipo est siempre conectado a la base de datos, hasta que lo cerramos
Ernesto Calvo A.
Mtodo Read
Carga la prxima fila Devuelve True si la fila existe o False si no hay filas
Mtodo Close Propiedad Item Mtodos GetXxx , por ej., GetString, GetInt32
Ernesto Calvo A.
Crear un DataReader
Ernesto Calvo A.
Dim myCommand As New SqlCommand( "select * from customers", myConnection) Dim myReader As SqlDataReader = myCommand.ExecuteReader()
If Not (myReader Is Nothing) Then myReader.Close() End If If myConnection.State = ConnectionState.Open Then myConnection.Close() End If
Ernesto Calvo A.
SELECT ProductName, UnitPrice FROM Products SELECT ProductName FROM Products WHERE Discontinued = 0
Ernesto Calvo A.
Se puede consultar la cantidad de registros afectados de una sentencia DML con la propiedad RecordsAffected A cada prxima sentencia SELECT se puede acceder con el metodo NextResult
Definicin
Automatiza tareas de administracin de las bases de datos CREATE, ALTER, DROP, GRANT, DENY, REVOKE
Sentencias DDL
Ejemplo
Ernesto Calvo A.
Ernesto Calvo A.
Ernesto Calvo A.
Ernesto Calvo A.
Definicin
Sentencias que modifican datos en una base de datos INSERT, UPDATE, DELETE
Sentencias DML
Ejemplo
CREATE PROCEDURE dbo.InsertRegion ( @RegID int, @RegName nchar(50) ) AS INSERT INTO Region VALUES (@RegID, @RegName)
Ernesto Calvo A.
Ernesto Calvo A.
Mtodo ExecuteNonQuery
Ernesto Calvo A.
Incorrecto nombre de objetos Server no disponible Problemas de integridad en los datos Usar una conexin antes de abrirla Invalido tipo de dato
Ernesto Calvo A.
Transacciones
Ernesto Calvo A.
Temas: Definir una Transaccin Como se manejan las Transacciones ? Como trabaja una Transaccin
Ernesto Calvo A.
Ernesto Calvo A.
Ejemplo
/* Usar Transacciones para asegurar consistencia*/ BEGIN TRANSACTION INSERT INTO Account (AccountID, Amount, DebitCredit) VALUES (1234, 100, 'debit') INSERT INTO Account (AccountID, Amount, DebitCredit) VALUES (5678, 100, 'credit') IF (@@ERROR > 0) ROLLBACK TRANSACTION ELSE COMMIT TRANSACTION
Ernesto Calvo A.
Ernesto Calvo A.
Ernesto Calvo A.
Temario
Ernesto Calvo A.
Construyendo DataSets y DataTables Enlazando un DataSet a un Control Windows Creando un DataSet Definiendo Data Relationships Modificando Datos en un DataTable Usando un DataView
Ernesto Calvo A.
DataSet
Ernesto Calvo A.
Es una representacin en memoria de la base de datos completa (mltiples tablas, esquema, relaciones y restricciones) Adems, es desconectado
Contiene una coleccin de objetos DataTable, los cuales a su vez tienen una coleccin de DataRow
DataSet
*
tablas
DataTable
Ernesto Calvo A.
*
filas
DataRow
DataSet
Data Table Data Table
Connection
Stored Procedure
Database
Server
Ernesto Calvo A.
Data Store
System.Data y DataSet
DataSet
Ernesto Calvo A.
Tables
DataTable
DataRow(s)
Relations
DataRelation DataRelation
DataColumn Constraint(s)
DataView
DataTable DataTable
Ernesto Calvo A.
Gestiona la conexin a una base de datos Ejecuta un comando de consulta en la base de datos Intercambia datos entre el conjunto de datos y la base de datos Almacena datos en un cach distinto de la base de datos Proporciona acceso eficaz a un flujo de datos de slo lectura
Ernesto Calvo A.
Creando un DataSet
Dim myDataSet As DataSet myDataSet = New DataSet(CustomersDataSet)
Creando un DataTable
Dim workTable As New DataTable (Customers)
Ernesto Calvo A.
DataAdapter
Ernesto Calvo A.
DataSet
El mtodo Fill puebla un conjunto de datos (data set) El mtodo Update transmite los cambios al almacn de datos
Ernesto Calvo A.
Ernesto Calvo A.
Definicin Ejemplo:
Dim myColumn As New DataColumn(ID, GetType(System.Int32)) With myColumn .AutoIncrement = True .AutoIncrementSeed = 1000 .AutoIncrementStep = 10 End With
Ernesto Calvo A.
Creando expresiones
Ernesto Calvo A.
Funciones Aggregate (Sum, Avg, Max, Min, Count, Etc) Usando la propiedad Expression en DataColumn Sintaxis:
DataColumn.Expression =Expression
Ejemplo:
Dim cPrice As New DataColumn(Price, GetType(System.Decimal)) Dim cTax As New DataColumn(Tax, GetType(System.Decimal)) cTax.Expression = "Price * 0.0862" Dim cTotal As New DataColumn(Total, GetType(System.Decimal)) cTotal.Expression = "Price + Tax"
Ernesto Calvo A.
Sintaxis: Ejemplo:
TextBox1.DataBindings.Add( _ "Text", dsNorthwind, "Products.ProductID")
Ernesto Calvo A.
El enlace puede ser hecho en tiempo de diseo o programaticamente( por codigo) Para realizar el enlace de un DataSet a un DataGridView programaticamente:
DataGridView1.SetDataBinding(dsNorth, Suppliers)
Temas:
Como crear una clave primaria(Primary Key Constraint) Usando Foreign Key Constraints para restringir acciones Como crear una Foreign Key Constraint Objeto DataRelation Como crear un objeto DataRelation Como navegar entre Tablas relacionadas
Ernesto Calvo A.
Ernesto Calvo A.
Descripcion
Elimina o actualiza filas relacionadas(default).
SetNull
SetDefault
None
Objeto DataRelation
Ernesto Calvo A.
Hace disponibles los registros relacionados a partir del registro de la tabla padre con el que esta trabajando Valida forzando la integridad referencial Objetos DataSets y objetos DataRelation
Ernesto Calvo A.
Ejemplo
With DataSet1 .Relations.Add(FK_CustomersOrders, _ .Tables("Customers").Columns("CustID"), _ .Tables("Orders").Columns("CustID"), _ True) ademas crea una ForeignKeyConstraint End With
Ernesto Calvo A.
Ernesto Calvo A.
Temas:
Como insertar un nuevo Registro Como posicionarse en un registro Modificando datos en un DataTable Como eliminar un Registro Como manejar un evento de un DataTable Como aceptar o rechazar Cambios
Ernesto Calvo A.
Llenando un registro
workRow(1)=Smith workRow(CustLName)=Smith
Ernesto Calvo A.
Ernesto Calvo A.
Ejemplo:
Private WithEvents dtProducts As DataTable Private Sub dtProducts_RowDeleted( _ ByVal sender As Object, _ ByVal e As System.Data.DataRowChangeEventArgs) _ Handles dtProducts.RowDeleted write code here End Sub
Ernesto Calvo A.
Ernesto Calvo A.
Temas:
El objeto DataView Como se define un objeto DataView Ordenar y filtrar un objeto DataTable usando el objeto DataView
Ernesto Calvo A.
Objeto DataView
Ernesto Calvo A.
Crea mltiples vistas de los objetos DataTable Vinculable a controles Propiedades importantes:
Item: Obtiene una fila de una tabla determinada Table: Obtiene o asigna el objeto DataTable Sort: obtiene o asigna la/s columna/s y el ordenamiento RowFilter: Obtiene o asigna la expresin para filtrar la vista RowStateFilter: Indica o asigna el estado del filtro
None, Unchanged, New, Deleted, ModifiedCurrent, y otros
Ernesto Calvo A.
Objeto DataView
Ernesto Calvo A.
DataSet
Data Table Data Table
Connection
Stored Procedure
DataView
Database
Screenshot
Server
Ernesto Calvo A.
Data Store
Ernesto Calvo A.
Ernesto Calvo A.
Dim dv As DataView = obj.GetDV With cboUbigeo .DisplayMember = "UbiDetalle" .ValueMember = "UbiCodigo" .DataSource = dv End With
Ernesto Calvo A.
Ernesto Calvo A.
Ernesto Calvo A.
Ernesto Calvo A.
ANEXOS
Ernesto Calvo A.
Acceso A Datos Conectado Acceso A Datos Desconectado Vista XML De Datos Relacionales
Ernesto Calvo A.
Ernesto Calvo A.
Proveedores Gestionados
Conexin, Transaccin
Conectando a un DataSource Iniciando/Finalizando Transacciones
Comando, Parametros
Actualizaciones, Selects, DDL
DataReader
(FO/RO) Cursor
DataAdapter
Pone datos en el Dataset Lee cambios del DataSet
Ernesto Calvo A.
DataSet
Cacheo De Resultados
ASP.NET Cache
Resultados Persistentes
Guardar Datos como XML, Schema como XSD
DataView, DataViewManager
Enlazar controles Windows
Ernesto Calvo A.
XML
XmlDocument XmlDataDocument Implementa nivel core, 1 y 2 del W3C DOM XPathNavigator Provee acceso aleatorio de slo lectura XslTransform Soporta sintaxis XSLT 1.0
Ernesto Calvo A.
En un escenario conectado, los recursos se mantienen en el servidor hasta que la conexin se cierra 1) Abrir Conexin 2) Ejecutar Comando 3) Procesar Filas en DataReader 4) Cerrar Reader 5) Cerrar Conexin
Ernesto Calvo A.
En un escenario desconectado, los recursos no se mantienen en el servidor mientras los datos se procesan 1) Llenar DataSet mediante DataAdapter 2) Procesar DataSet 3) Abrir Conexin 4) Actualizar fuente de datos mediante DataAdapter 5) Cerrar Conexin
Ernesto Calvo A.
<XML>
DocumentNavigator
XmlTextWriter
XmlDocument XmlReader
XmlTextReader
XmlNodeReader
Qu es un Assembly?
Ernesto Calvo A.
Clases Clases Base Interfaces Implementadas Atributos de las Clases Mtodos de las Clases
Uno o ms Assemblies Al ejecutar una aplicacin, cmo ubico los assemblies necesarios? El Class Loader busca en el directorio local (preferido) Global Assembly Cache (GAC) Diferentes aplicaciones pueden usar diferentes versiones
Conjunto de Tipos bsicos (clases, interfaces, etc.) que vienen includos en el .NET Framework Los tipos estn organizados en jerarquas lgicas de nombres, denominados NAMESPACES Los tipos son INDEPENDIENTES del lenguaje de desarrollo Es extensible y totalmente orientada a objetos
Ernesto Calvo A.
Cdigo Fuente
Compilador
Assembly (MSIL)
Biblioteca o Ejecutable
Ernesto Calvo A.
Interoperabilidad
Ernesto Calvo A.
C# C++
Otros...
COM INTEROP
COM
VB .NET
Ernesto Calvo A.
Qu es una clase?
Ernesto Calvo A.
Ernesto Calvo A.
Qu es una clase?
Ernesto Calvo A.
Constructor y Destructor
Ernesto Calvo A.
Dos mtodos de las clases Existen por defecto Constructor, inicializa valores Destructor, libera recursos al finalizar la vida de una instancia de una clase creada en memoria Existen constructores y destructores por defecto
Ernesto Calvo A.
Qu es un objeto?
Ernesto Calvo A.
Ernesto Calvo A.
Qu es un objeto?
Ernesto Calvo A.
Identidad: Relacin nica entre el objeto del modelo y el ente de la realidad que representa. Se implementa a travs de un id nico en el modelo. Comportamiento: Resuelve un conjunto particular de problemas a travs de su protocolo. Estado: Almacena informacin Fija Variable
Ernesto Calvo A.
Ernesto Calvo A.