Sei sulla pagina 1di 108

Ernesto Calvo A.

ADO .NET Mdulo: Aplicaciones centradas en Datos


Ernesto Calvo A.

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.

Cmo funciona la programacin de bases de datos


Ernesto Calvo A.

Tareas habituales en la programcin de bases de datos


Conectar a una base de datos Solicitar datos especficos Mostrar y modificar datos Devolver datos Transmitir actualizaciones Cerrar la conexin Base de datos

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.

Alamacenes de Datos (Data Storage)


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.

Internet es un ejemplo de un entorno desconectado

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)

Los actualizan los datos en el origen de datos (data source)


Ernesto Calvo A.

Modelos de aplicaciones con acceso a datos


Ernesto Calvo A.

Evolucin
Logica del cliente Logica de negocios Alamcen de Datos

Thin Client

1-Capa (monolitico)

Fat Client

2-Capas 3-Capas Calvo A. Ernesto N-Capas e Internet

Definiendo ADO .NET

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

Internet Intranet DataSet


XML

Data Object (Class) DataSet

Business to Business

(BizTalk, for example)

Ernesto Calvo A.

Namespaces relacionados con datos


Ernesto Calvo A.

Los namespaces de datos incluyen:


System.Data System.Data.SqlClient System.Data.OracleClient System.Data.OleDb System.Data.SqlTypes System.Xml

Ernesto Calvo A.

El modelo del objeto DataSet


Tablas (coleccion de objetos DataTable) Relaciones (coleccion de objetos DataRelation )

DataColumn DataRow Constraints

DataTable DataRelation

DataSet

Las clases Data Provider .NET


Ernesto Calvo A.

XxxConnection, por ej., SqlConnection


XxxTransaction, por ej., SqlTransaction XxxError, por ej., SqlError XxxParameter, por ej., SqlParameter

XxxCommand, por ejemplo, SqlCommand

XxxDataReader, por ej., SqlDataReader XxxDataAdapter, por ej., SqlDataAdapter

Ernesto Calvo A.

El modelo de objeto XxxDataAdapter


Ernesto Calvo A.

XxxDataAdapter
SelectCommand UpdateCommand InsertCommand DeleteCommand

XxxDataReader XxxCommand XxxCommand XxxCommand XxxCommand

XxxConnection
sp_SELECT sp_UPDATE sp_INSERT
Ernesto Calvo A.

sp_DELETE

Evolucion de ADO hacia ADO .NET


Ernesto Calvo A.

Connection

XxxConnection XxxTransaction XxxCommand DataSet

ADO .NET

ADO

Command

Recordset
Ernesto Calvo A.

XxxDataReader XxxDataAdapter

ADO .NET y XML


Ernesto Calvo A.

ADO .NET esta fuertemente integrado con XML

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

XML Updated XML

3 6

Results SQL updates

Uso de XML en una aplicacion conectada con ADO .NET

Cargar un XML en el arbol DOM , o usar DataReader


Ernesto Calvo A.

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.

Sintaxis de instrucciones SQL habituales

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.

Mdulo: Conectando a un Origen de Datos


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.

ADO.NET - Data Provider


Ernesto Calvo A.

Ernesto Calvo A.

Cul Data Provider deberamos usar ?


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.

Seguridad en las Bases de Datos


Ernesto Calvo A.

Usando seguridad en SQL Server Usando Autenticacin de Windows


Server=myServer;Database=myDataBase;Trusted_Connection=True;

Usando Modo Mixto (Autenticacion de Windows y Autenticacion de SQL )


Data Source=myServer;Initial Catalog=myDataBase; User Id=myUser; Password=myPass;

Ernesto Calvo A.

Configurando un string de conexin (connection string)

Ernesto Calvo A.

Seteando un Connection String


Provider (solo para OLE DB ) Data Source Initial Catalog Integrated Security User ID/Password Persist Security Info

Ernesto Calvo A.

Abrir y cerrar una conexin


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.

Manejo estructurado de una excepcion


Ernesto Calvo A.

Sintaxis : Try Catch Finally Sentencia Throw Excepciones genericas

Ernesto Calvo A.

Como manejar mltiples tipos de excepciones


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.

Agrupamiento de conexiones(Connection Pooling)


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.

Agrupando conexiones en OLE DB


Ernesto Calvo A.

Deshabilitando el agrupamiento en una conexin OLE DB


Dim cnNorthwind As New OleDbConnection() cnNorthwind.ConnectionString = _ Provider=SQLOLEDB; & _ Data Source=London; & _ Integrated Security=SSPI; & _ OLE DB Services=-4; & _ Initial Catalog=Northwind;)

Ernesto Calvo A.

Archivo de Configuracin 1: app.config


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.

Archivo de Configuracin 2: app.config


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.

Mdulo: Trabajando con conexiones a BD


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.

Un objeto command es un referencia a una sentencia SQL o a un stored procedure Propiedades

(Name), Connection, CommandType, CommandText, Parameters ExecuteScalar, ExecuteNonQuery, ExecuteReader, ExecuteXmlReader

Mtodos

Ejemplo: Creando un SqlCommand

Dim cmCategories As new SqlCommand ( _ "SELECT * FROM Categories", cnNorthwind)


Ernesto Calvo A.

Como crear un objeto Command Object


Ernesto Calvo A.

Server Explorer

View, Server Explorer (Ctrl+Alt+S) Crear Store Procedures Drag n drop stored procedure

SQL Management Studio

Ernesto Calvo A.

Qu son los Parmetros (Command)


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

Parametros para un objeto Command


Ernesto Calvo A.

Como definir programaticamente los parmetros

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.

Ejecutar Command que retornan un solo valor


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.

Porqu retornar un solo valor en un Command?


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.

Ejecutar un Command que devuelve un solo valor


Ernesto Calvo A.

Introduccin

ExecuteScalar retorna un valor de tipo Object


cmProducts.Parameters("@ProdID").Value = 42 cnNorthwind.Open() Dim qty As Int16 = cmProducts.ExecuteScalar cnNorthwind.Close()

Ejemplo

Ernesto Calvo A.

Recuperar parmetros Output y Return Values


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

Read-only, forward-only Devolviendo un DataReader Ejemplo: SqlDataReader, OleDbDataReader

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

Es decir, mantiene una conexin abierta mientras trabajemos con l

Slo permite leer los registros devueltos, secuencialmente

De uno en uno, y siempre hacia delante, por medio de su operacin Read

Ernesto Calvo A.

Metodos y propiedades de un objeto DataReader


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.

Crear y abrir la conexin a base de datos Crear el DataReader desde un comando

Dim myCommand As New SqlCommand( "select * from customers", myConnection) Dim myReader As SqlDataReader = myCommand.ExecuteReader()

Cerrar el DataReader y la conexin

If Not (myReader Is Nothing) Then myReader.Close() End If If myConnection.State = ConnectionState.Open Then myConnection.Close() End If
Ernesto Calvo A.

Porqu usar multiples sentencias SQL?


Ernesto Calvo A.

Performance Grupo de tareas relacionadas Encapsular reglas de negocios Ejemplo


/* a stored procedure with multiple SQL statements */ CREATE PROCEDURE dbo.IncreasePrices AS

SELECT ProductName, UnitPrice FROM Products SELECT ProductName FROM Products WHERE Discontinued = 0
Ernesto Calvo A.

UPDATE Products SET UnitPrice = UnitPrice * 1.02

Como procesar multiples sentencias SQL

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

Data Definition Language


Ernesto Calvo A.

Definicin

Automatiza tareas de administracin de las bases de datos CREATE, ALTER, DROP, GRANT, DENY, REVOKE

Sentencias DDL

Ejemplo

CREATE PROCEDURE dbo.SummarizeProducts AS CREATE TABLE ProductSummary (ProductName varchar(40),CategoryName varchar(15))

Ernesto Calvo A.

Como ejecutar un comando DDL


Ernesto Calvo A.

Mtodo ExecuteNonQuery Retorna cantidad de filas afectadas

Ernesto Calvo A.

Manipulando datos usando DML (Data Manipulation Language)

Ernesto Calvo A.

El lenguaje DML (Data Manipulation Language) Como ejecutar comandos DML

Ernesto Calvo A.

DML(Data Manipulation Language)


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.

Como ejecutar un comando DML (Data Manipulation Language)

Ernesto Calvo A.

Ejecutar una sentencia DML

Mtodo ExecuteNonQuery

Ernesto Calvo A.

Errores al intentar modificar datos


Ernesto Calvo A.

Errores mas Comunes


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.

Definir una Transaccin?


Ernesto Calvo A.

Transacciones locales y distribuidas Propiedades ACID


Atomicidad (Atomicity) Consistencia(Consistency) Aislamiento(Isolation) Durabilidad(Durability)

Ernesto Calvo A.

Como manejar una transaccion usando SQL


Ernesto Calvo A.

Sentencias SQL para transacciones

BEGIN TRANS, COMMIT TRANS, ROLLBACK TRANS

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.

Como manejar transacciones usando ADO .NET


Ernesto Calvo A.

XxxConnection, ej., SqlConnection

BeginTransaction Commit Rollback Save (solo en SqlTransaction)

XxxTransaction, ej., SqlTransaction


Ernesto Calvo A.

Ernesto Calvo A.

Mdulo: Construyendo DataSets


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

Una vez que hace la consulta, cierra la conexin con la BD

Contiene una coleccin de objetos DataTable, los cuales a su vez tienen una coleccin de DataRow
DataSet

*
tablas

DataTable
Ernesto Calvo A.

*
filas

DataRow

DataSets, DataTables, y DataColumns


Ernesto Calvo A.

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.

Objetos comunes de ADO.NET


Ernesto Calvo A.

Base de datos Connection Command DataAdapter DataSet DataReader


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

Como crear un DataSet, un DataTable, y un DataColumn

Ernesto Calvo A.

Creando un DataSet
Dim myDataSet As DataSet myDataSet = New DataSet(CustomersDataSet)

Creando un DataTable
Dim workTable As New DataTable (Customers)

Creando un DataColumn y agregarlo a un DataTable


Dim workCol As DataColumn = workTable.Columns.Add( _ CustID, GetType (System.Int32)

Ernesto Calvo A.

DataAdapter
Ernesto Calvo A.

DataAdapter Database SelectCommand InsertCommand UpdateCommand DeleteCommand TableMappings


Ernesto Calvo A.

DataSet

Cmo utilizar un objeto DataAdapter


Ernesto Calvo A.

Crear un DataAdapter Declarar con la palabra clave Dim

Pasar una cadena de consulta y un objeto Connection como parmetros

Dim PubsAdapter As New SQLDataAdapter _ ("Select * from Titles,PubsSQLConn)

Mtodos principales de DataAdapter:


El mtodo Fill puebla un conjunto de datos (data set) El mtodo Update transmite los cambios al almacn de datos
Ernesto Calvo A.

Usando Unique Constraints


Ernesto Calvo A.

Unique constraints Ejemplo:


[Visual Basic] ds.Tables("Product").Columns(ProductName).Unique = True

Ernesto Calvo A.

Usando AutoIncrement (DataColumn)


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.

Como enlazar a un dato a un control Windows


Ernesto Calvo A.

Enlace simple y enlace Complejo Enlace usando herramientas grficas y programaticamente


Control.DataBindings.Add( _ Propiedad del control, DataSet, Tabla.Columna")

Sintaxis: Ejemplo:
TextBox1.DataBindings.Add( _ "Text", dsNorthwind, "Products.ProductID")

Ernesto Calvo A.

Enlazar un DataSet a un DataGridView


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)

Propiedades: grv.dataSource=dataView grv.AutoGenerateColumns = False grv.Columns.Add("IDCodigo", "Codigo") grv.Columns(4).DataPropertyName = "IDCodigo"


Ernesto Calvo A.

Definiendo relaciones entre DataTables


Ernesto Calvo A.

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.

Como crear una clave primaria(Primary Key Constraint)

Ernesto Calvo A.

Usando la propiedad PrimaryKey de un DataTable


dtClientes.PrimaryKey= New DataColumn()_ {dtClentes.Columns(CustomerID)}

Usando una constraint para crear una primary key


workTable.Constraints.Add(PK_Customer,_ workTable.Columns(CustomerID), True)

Definiendo multiples columnas como una primary key


workTable.PrimaryKey=New DataColumn() _ {workTable.Columns(CustLName), _ workTable.Columns(CustFName)}
Ernesto Calvo A.

Usando Foreign Key Constraints para restringir acciones

Acciones a llevarse a cabo en tablas relacionadas


DeleteRule
Cascade

Descripcion
Elimina o actualiza filas relacionadas(default).

SetNull

Establece los valores de las filas a nulo(DBNull).

SetDefault

Establece valores en filas relacionadas con los DefaultValue.

None

No lleva a cabo ninguna accion, pero produce una excepcion

Objeto DataRelation
Ernesto Calvo A.

Definicin Un objeto DataRelation puede realizar 2 funciones:

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.

Como crear un objeto 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.

Como navegar entre Tablas relacionadas


Ernesto Calvo A.

El mtodo GetChildRows de un DataRow Ejemplo:


Dim drCustomer As DataRow Dim drOrder As DataRow For Each drCustomer In dsNorthwind.Tables(Customer).Rows For Each drOrder In drCustomer.GetChildRows( _ FK_CustomersOrders) process row Next Next

Ernesto Calvo A.

Modificando datos en un DataTable


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.

Como insertar un nuevo Registro


Ernesto Calvo A.

Creando a nuevo registro


Dim workRow As DataRow = workTable.NewRow()

Llenando un registro
workRow(1)=Smith workRow(CustLName)=Smith

Agregando un registro a un DataTable


workTable.Rows.Add(workRow)

Creando, llenando, y agregando un registro


workTable.Rows.Add(new Object() {1, Smith})
Ernesto Calvo A.

Modificando datos en un DataTable


Ernesto Calvo A.

La clase DataRow Los mtodos BeginEdit, EndEdit, y CancelEdit Ejemplo


dt.Rows(3).Items(FirstName)=John dt.Rows(3).Items(LastName)=Smith dt.Rows(3).EndEdit() dt.Rows(3).BeginEdit()

Ernesto Calvo A.

Como eliminar un Registro


Ernesto Calvo A.

El mtodo Remove del objeto DataRowCollection Ejemplo:


workTable.Rows.Remove(workRow)

El mtodo Delete del objeto DataRow Ejemplo:


workRow.Delete

Ernesto Calvo A.

Como manejar un evento de un DataTable


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

Eventos del DataTable

Ernesto Calvo A.

Como aceptar o rechazar Cambios


Ernesto Calvo A.

Mtodo: AcceptChanges Propiedad : RowState Chequeando errores

Ernesto Calvo A.

Usando el objeto DataView


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

Como se define un objeto DataView


Ernesto Calvo A.

Creando un DataView usando controles del form Crear un DataView programaticamente


Dim dv As New DataView(dsNorthwind.Tables(Products)) dv.Sort = UnitPrice dv.RowFilter = CategoryID > 4 DataGrid1.DataSource = dv

Aplicando un DataView a un DataTable

Dim dview as new DataView() dview.Table = ds1.Tables(Categories)

Ernesto Calvo A.

Ordenar y filtrar un DataTable usando un DataView


Ernesto Calvo A.

Filtrando y ordenando usando el objeto DataView object


DataView1.RowStateFilter=DataViewRowState. _ CurrentRows

Filtrando y ordenando usando Default DataView


Dataset1.Customers.DefaultView.Sort=City

Ernesto Calvo A.

Enlazar un DataView a un Control de Lista


Ernesto Calvo A.

Mostrar un DataView en un ComboBox

Dim dv As DataView = obj.GetDV With cboUbigeo .DisplayMember = "UbiDetalle" .ValueMember = "UbiCodigo" .DataSource = dv End With

Ernesto Calvo A.

Ernesto Calvo A.

Mdulo: Crystal Report


Ernesto Calvo A.

Ernesto Calvo A.

Mdulo: LINQ y ADO.NET


Ernesto Calvo A.

Ernesto Calvo A.

ANEXOS

Ernesto Calvo A.

Cundo usar qu?


Ernesto Calvo A.

Acceso A Datos Conectado Acceso A Datos Desconectado Vista XML De Datos Relacionales

Ernesto Calvo A.

Cundo usar qu? Acceso A Datos Conectado

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.

Cundo usar qu? Acceso A Datos Desconectado


Ernesto Calvo A.

DataSet

Datos de Aplicacin Resultados remotos


SOAP, WebMethods, Remoting

Cacheo De Resultados
ASP.NET Cache

Resultados Persistentes
Guardar Datos como XML, Schema como XSD

Interaccin Con El Usuario


Scrolling, sorting, filtering

DataView, DataViewManager
Enlazar controles Windows
Ernesto Calvo A.

Acceso a Datos XML


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.

ADO.NET Accediendo a datos Conectado


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.

ADO.NET Accediendo a datos Desconectado


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.

ADO.NET - Soporte a XML


Ernesto Calvo A.

<XML>

DocumentNavigator

XmlTextWriter

XmlDocument XmlReader

XmlTextReader

XmlValidatingReader Ernesto Calvo A.

XmlNodeReader

Qu es un Assembly?
Ernesto Calvo A.

Un Assembly es la unidad mnima de ejecucin, distribucin, instalacin y versionado de aplicaciones .NET


Descripcin de Tipos MiBiblioteca.DLL Metadata Recursos Cdigo Compilado MSIL
Ernesto Calvo A.

Clases Clases Base Interfaces Implementadas Atributos de las Clases Mtodos de las Clases

Manifiesto del Assembly

Nombre Versin Otros Assemblies Cultura Permisos de Seguridad


Tipos Externos

Assemblies - Aplicaciones .NET


Ernesto Calvo A.

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

Actualizaciones ms simples Desinstalacin ms simple


Ernesto Calvo A.

.NET Framework Class Library


Ernesto Calvo A.

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.

CLR Proceso de Compilacin


Ernesto Calvo A.

Cdigo Fuente

Compilador

Assembly (MSIL)

Cualquier lenguaje .NET

Biblioteca o Ejecutable

Ernesto Calvo A.

Interoperabilidad
Ernesto Calvo A.

Servicios Web XML .NET Framework

C# C++
Otros...

COM INTEROP

COM

VB .NET

Ernesto Calvo A.

Qu es una clase?
Ernesto Calvo A.

Clase Clasificacin Clasificacin en base a comportamiento y atributos comunes Crea un vocabulario


La forma en que nos comunicamos La forma en que pensamos

Ernesto Calvo A.

Qu es una clase?
Ernesto Calvo A.

Construccin Esttica Describe:


Comportamiento comn Atributos [estado]

Estructura de datos Incluye:


Datos Funciones o mtodos


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.

Instancia de una clase Un objeto posee:

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.

PMP Ernesto Calvo A. ernesto.calvo@pmi.org.pe FIN


Ernesto Calvo A.

Potrebbero piacerti anche