Cur So Ado Net
-
Upload
celso-cortez-vega -
Category
Documents
-
view
87 -
download
0
Transcript of Cur So Ado Net
Ernesto Calvo A.
Ernesto Calvo A.
ADO .NET
Módulo: Aplicacionescentradas en Datos
Ernesto Calvo A.
Ernesto Calvo A.
ADO .NET es la última versión de la tecnología de acceso a datos de Microsoft
Es un conjunto de clases de la librería de clases del .NET Framework que nos permiten interactuar con cualquier tipo de base de datos desde cualquier tipo de aplicación
Introducción
Ernesto Calvo A.
Ernesto Calvo A.
Cómo funciona la programación de bases de datos
Conectar a una base de datos
Solicitar datos específicos
Devolver datos
Transmitir actualizacionesMostrar y modificar
datos
Base de datos
Cerrar la conexión
En muchas aplicaciones, la conexión se cierra después de que el usuario accede a los datos y vuelve a abrirse cuando el usuario
reenvía actualizaciones o realiza más peticiones
Tareas habituales en la programáción de bases de datos
Ernesto Calvo A.
Ernesto Calvo A.
Alamacenes de Datos (Data Storage)
Tipos Datos relacionales
SQL Server, Oracle, Access Datos XML
XML Web service Estructurados, no-jerárquicos
Archivos de extensión CVS (Comma Separated Value), Planillas del Tipo Microsoft Excel
Microsoft Exchange Active Directory
Ernesto Calvo A.
Ernesto Calvo A.
El entorno conectado
Uno en el cual los usuarios o aplicaciones tienen una conexión con un origen de datos
Ernesto Calvo A.
Ernesto Calvo A.
El entorno desconectado
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 aun origen de datos (data source)
Los actualizan los datos en el origen de datos (data source)
Ernesto Calvo A.
Ernesto Calvo A.
Modelos de aplicaciones con acceso a datos
Evolución
1-Capa(monolitico)
2-Capas
3-Capas N-Capas e Internet
“Fat” Client
“Thin” ClientLogica del clienteLogica de negociosAlamcen de Datos
Una evolución , mas flexible de ADO
Un sistema diseñado 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
Definiendo ADO .NET
Ernesto Calvo A.
Ernesto Calvo A.
Arquitectura de ADO.NET
Capa Negocio Capa Datos
Capa Presentación
Windows Forms
Web Forms
Business to Business
Data Object (Class)
DataSet
DataSetDataSet
InternetIntranet Data Adapter
Data Adapter
(BizTalk, for example)
XML
MyApp.Exe
IE
Ernesto Calvo A.
Ernesto Calvo A.
Namespaces relacionados con datos
Los namespaces de datos incluyen:
System.Data
System.Data.SqlClient
System.Data.OracleClient
System.Data.OleDb
System.Data.SqlTypes
System.Xml
El modelo del objeto DataSet
Tablas (coleccion de objetos DataTable)
Relaciones (coleccion de objetos DataRelation )
DataSet
DataRow
DataColumn
DataTable
DataRelation Constraints
Ernesto Calvo A.
Ernesto Calvo A.
Las clases Data Provider .NET
XxxConnection, por ej., SqlConnection
XxxTransaction, por ej., SqlTransaction
XxxError, por ej., SqlError
XxxCommand, por ejemplo, SqlCommand
XxxParameter, por ej., SqlParameter
XxxDataReader, por ej., SqlDataReader
XxxDataAdapter, por ej., SqlDataAdapter
Ernesto Calvo A.
Ernesto Calvo A.
El modelo de objeto XxxDataAdapter
sp_SELECT
XxxCommand
SelectCommand UpdateCommand InsertCommand DeleteCommandXxxDataAdapter
XxxCommand XxxCommand XxxCommand
XxxConnection
sp_UPDATE sp_INSERT sp_DELETE
XxxDataReader
Ernesto Calvo A.
Ernesto Calvo A.
Evolucion de ADO hacia ADO .NET
Connection
ADO
ADO .NET
Command
Recordset
XxxConnection
XxxCommand
DataSet
XxxTransaction
XxxDataReader
XxxDataAdapter
Ernesto Calvo A.
Ernesto Calvo A.
ADO .NET y XML
ADO .NET esta fuertemente integrado con XML
2 SQL queryXML Web Services
XML4 DataSetResults3
Data Source
Uso de XML en una aplicacion conectada con ADO .NET
Cargar un XML en el arbol DOM , o usar DataReader
5 Updated XML DataSet 6 SQL updates
Request data1Client
Usando XML en un entorno desconectado con ADO .NET
Ernesto Calvo A.
Ernesto Calvo A.
¿Qué es SQL?
Sintaxis de instrucciones SQL habituales Para especificar exactamente qué registros deseamos
recuperar, utilizarSELECT Campo FROM Tabla
Para limitar la selección de registros, utilizarSELECT * FROM Tabla WHERE Campo = "String"
Para devolver registros en orden ascendente, utilizarSELECT * FROM Tabla ORDER BY Campo ASC
Ejemplo
Definición: SQL es un lenguaje estándar que ha evolucionado hasta convertirse en el medio de mayor aceptación para realizar consultas y modificar datos en una base de datos
SELECT Nombre FROM Empleados
Ernesto Calvo A.
Ernesto Calvo A.
Módulo: Conectando a un Origen de Datos
Ernesto Calvo A.
Ernesto Calvo A.
Temario
Eligiendo un Data Provider .NET
Manejando una Conexión
Atrapando Excepciones
Agrupamiento de conexiones(Connection Pooling)
Ernesto Calvo A.
Ernesto Calvo A.
ADO.NET - Data Provider
Ernesto Calvo A.
Ernesto Calvo A.
Cuál Data Provider deberíamos usar ?
SQL Server Data Provider .NET
Oracle Data Provider .NET
OLE DB Data Provider .NET
ODBC Data Provider .NET
Guía para elegir un data provider .NET
Ernesto Calvo A.
Ernesto Calvo A.
Seguridad en las Bases de Datos
Usando seguridad en SQL Server
Usando Autenticación 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.
Ernesto Calvo A.
Configurando un string de conexión(connection string) Seteando un Connection String
Provider (solo para OLE DB )
Data Source
Initial Catalog
Integrated Security
User ID/Password
Persist Security Info
Ernesto Calvo A.
Ernesto Calvo A.
Abrir y cerrar una conexión
Usando los métodos Open y Close
Abriendo y Cerrando conexiones explicitamente
Abriendo y Cerrando conexiones implicitamente.
Usando el método Dispose
Usando múltiples conexiones
Ernesto Calvo A.
Ernesto Calvo A.
Manejo estructurado de una excepcion
Sintaxis : Try… Catch… Finally
Sentencia Throw
Excepciones genericas
Ernesto Calvo A.
Ernesto Calvo A.
Como manejar múltiples tipos de excepciones
Escribir el código a ejecutar dentro del bloque Try
Escribir una sentencia Catch por cada excepción especifica que deseamos atrapar
Escribir un generico Catch para todas las excepciones
Escribir una sentencia Finally para ejecutar código independientemente que suceda
Finalizar la excepción con un bloque End Try
Ernesto Calvo A.
Ernesto Calvo A.
Agrupamiento de conexiones(Connection Pooling)
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.
Agrupando conexiones en OLE DB
Deshabilitando el agrupamiento en una conexión 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.
Ernesto Calvo A.
Archivo de Configuración 1: app.config
Es un fichero de configuración, el cual puede usarse en tiempo de ejecución para recuperar ciertos valores, los cuales puedes modificar una vez que el proyecto esté compilado
1.- Agregar un archivo app.config al proyecto2.- Agregar un bloque <appSettings> al final y configurarlo3.- Seleccionar una clase o un Form 4.- Cargar el namespace: Imports System.Configuration5.- Leer valor: Cad = ConfigurationManager.AppSettings("miConexion")
Ernesto Calvo A.
Ernesto Calvo A.
Archivo de Configuración 2: app.config
<?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 SqlConnectionDim cad As String = ConfigurationManager.AppSettings("miConexion")Dim oCn As New SqlConnection(cad)Return oCn
End Function
Ernesto Calvo A.
Ernesto Calvo A.
Módulo:Trabajando con conexiones a BD
Ernesto Calvo A.
Ernesto Calvo A.
Temario
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.
Ernesto Calvo A.
El Objeto Command
Un objeto command es un referencia a una sentencia SQL o a un stored procedure
Propiedades (Name), Connection, CommandType, CommandText,
Parameters Métodos
ExecuteScalar, ExecuteNonQuery, ExecuteReader, ExecuteXmlReader
Ejemplo: Creando un SqlCommandDim cmCategories As new SqlCommand ( _
"SELECT * FROM Categories", cnNorthwind)
Ernesto Calvo A.
Ernesto Calvo A.
Como crear un objeto Command Object
Server Explorer
View, Server Explorer (Ctrl+Alt+S)
Crear Store Procedures
Drag ‘n drop stored procedure
SQL Management Studio
Ernesto Calvo A.
Ernesto Calvo A.
Qué son los Parámetros (Command)
Introducción Las sentencias SQL y los stored procedures tienen
parametros de entrada(input), salida(output) y valores de retorno(return value)
A través de la colección parameters de los objetos command podemos configurar, dando valores y recuperar estos parametros
SqlParameter, OleDbParameter Propiedades
ParameterName, DbType, Size, Direction
Ernesto Calvo A.
Ernesto Calvo A.
Parametros para un objeto Command
Como definir programaticamente los parámetros
EjemploDim p1 As new SqlParameter(“@CatName”, _
SqlDbType.Char, 15)p1.Direction = ParameterDirection.OutputcmdCountProds.Parameters.Add(p1)
Ejemplocmd.Parameters.AddWithValue("@IdCod", 12)
Ernesto Calvo A.
Ernesto Calvo A.
Ejecutar Command que retornan un solo valor
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.
Ernesto Calvo A.
Porqué retornar un solo valor en un Command?
Introducción
ADO .NET es mas eficiente que en ADO, donde se retorna un grupo de registros
Ejemplos
Unidades en stock para un producto en particular
Cuantos productos hay?
COUNT, MAX, MIN, AVERAGE
Ernesto Calvo A.
Ernesto Calvo A.
Ejecutar un Command que devuelve un solo valor
Introducción
ExecuteScalar retorna un valor de tipo Object
EjemplocmProducts.Parameters("@ProdID").Value = 42cnNorthwind.Open()Dim qty As Int16 = cmProducts.ExecuteScalarcnNorthwind.Close()
Ernesto Calvo A.
Ernesto Calvo A.
Recuperar parámetros Output y Return Values
Como leer un parametro Output desde un objeto Commandcmd.Parameters("@CatName").Value
Como obtener un Return Value de un Stored Procedurecmd.Parameters("@RETURN_VALUE").Value
Ernesto Calvo A.
Ernesto Calvo A.
Retornando filas
DataReader
Read-only, forward-only
El método ExecuteReader
Devolviendo un DataReader
Ejemplo: SqlDataReader, OleDbDataReader
Ernesto Calvo A.
Ernesto Calvo A.DataReader
Un objeto de este tipo está siempre conectado a la base de datos, hasta que lo cerramos
Es decir, mantiene una conexión abierta mientras trabajemos con él
Sólo permite leer los registros devueltos, secuencialmente
De uno en uno, y siempre hacia delante, por medio de su operación Read
Ernesto Calvo A.
Ernesto Calvo A.
Metodos y propiedades de un objeto DataReader
Método Read
Carga la próxima fila
Devuelve True si la fila existe o False si no hay filas
Método Close
Propiedad Item
Métodos GetXxx , por ej., GetString, GetInt32
Ernesto Calvo A.
Ernesto Calvo A.
Crear un DataReader
Crear y abrir la conexión a base de datos
Crear el DataReader desde un comando
Cerrar el DataReader y la conexión
Dim myCommand As New SqlCommand( "select * from customers", myConnection)Dim myReader As SqlDataReader = myCommand.ExecuteReader()
If Not (myReader Is Nothing) ThenmyReader.Close()
End IfIf myConnection.State = ConnectionState.Open ThenmyConnection.Close()
End If
Ernesto Calvo A.
Ernesto Calvo A.
Porqué usar multiples sentencias SQL?
Performance Grupo de tareas relacionadas Encapsular reglas de negocios Ejemplo
/* a stored procedure with multiple SQL statements */CREATE PROCEDURE dbo.IncreasePricesAS
UPDATE Products SET UnitPrice = UnitPrice * 1.02SELECT ProductName, UnitPrice FROM ProductsSELECT ProductName FROM Products WHERE Discontinued = 0
Como procesar multiples sentencias SQL
Se puede consultar la cantidad de registros afectados de una sentencia DML con la propiedad RecordsAffected
A cada próxima sentencia SELECT se puede acceder con el metodo NextResult
Ernesto Calvo A.
Ernesto Calvo A.
Data Definition Language
Definición
Automatiza tareas de administración de las bases de datos
Sentencias DDL
CREATE, ALTER, DROP, GRANT, DENY, REVOKE
EjemploCREATE PROCEDURE dbo.SummarizeProducts AS
CREATE TABLE ProductSummary(ProductName varchar(40),CategoryName varchar(15))
Ernesto Calvo A.
Ernesto Calvo A.
Como ejecutar un comando DDL
Método ExecuteNonQuery
Retorna cantidad de filas afectadas
Ernesto Calvo A.
Ernesto Calvo A.
Manipulando datos usando DML(Data Manipulation Language)
El lenguaje DML (Data Manipulation Language)
Como ejecutar comandos DML
Ernesto Calvo A.
Ernesto Calvo A.
DML(Data Manipulation Language)
Definición Sentencias que modifican datos en una base de datos
Sentencias DML INSERT, UPDATE, DELETE
Ejemplo
CREATE PROCEDURE dbo.InsertRegion( @RegID int, @RegName nchar(50) )
ASINSERT INTO Region VALUES (@RegID, @RegName)
Ernesto Calvo A.
Ernesto Calvo A.
Como ejecutar un comando DML(Data Manipulation Language)
Ejecutar una sentencia DML
Método ExecuteNonQuery
Ernesto Calvo A.
Ernesto Calvo A.
Errores al intentar modificar datos
Errores mas Comunes
Incorrecto nombre de objetos Server no disponible Problemas de integridad en los datos Usar una conexión antes de abrirla Invalido tipo de dato
Ernesto Calvo A.
Ernesto Calvo A.
Transacciones
Temas:
Definir una Transacción
Como se manejan las Transacciones ?
Como trabaja una Transacción
Ernesto Calvo A.
Ernesto Calvo A.
Definir una Transacción?
Transacciones locales y distribuidas
Propiedades ACID Atomicidad (Atomicity) Consistencia(Consistency) Aislamiento(Isolation) Durabilidad(Durability)
Ernesto Calvo A.
Ernesto Calvo A.
Como manejar una transaccion usando SQL
Sentencias SQL para transacciones BEGIN TRANS, COMMIT TRANS, ROLLBACK TRANS
Ejemplo
/* Usar Transacciones para asegurar consistencia*/BEGIN TRANSACTIONINSERT INTO Account (AccountID, Amount, DebitCredit)
VALUES (1234, 100, 'debit') INSERT INTO Account (AccountID, Amount, DebitCredit)
VALUES (5678, 100, 'credit') IF (@@ERROR > 0)ROLLBACK TRANSACTION
ELSECOMMIT TRANSACTION
Ernesto Calvo A.
Ernesto Calvo A.
Como manejar transacciones usando ADO .NET
XxxConnection, ej., SqlConnection BeginTransaction
XxxTransaction, ej., SqlTransaction Commit Rollback Save (solo en SqlTransaction)
Ernesto Calvo A.
Ernesto Calvo A.
Módulo:Construyendo DataSets
Ernesto Calvo A.
Ernesto Calvo A.
Temario
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.
Ernesto Calvo A.
DataSet
Es una representación en memoria de la base de datos completa (múltiples tablas, esquema, relaciones y restricciones)
Además, es desconectado
Una vez que hace la consulta, cierra la conexión con la BD
Contiene una colección de objetos DataTable, los cuales a su vez tienen una colección de DataRow
DataSet DataTable DataRow* *
tablas filas
Ernesto Calvo A.
Ernesto Calvo A.
DataSets, DataTables, y DataColumns
Server Data Store
Database
Connection Stored Procedure
DataSet
Data Table
Data Table
Ernesto Calvo A.
Ernesto Calvo A.
DataSet TablesDataTable
System.Data y DataSet
RelationsDataRelation
DataRelation
DataRow(s)
DataColumn
Constraint(s)
DataTable
DataTable
DataView
Ernesto Calvo A.
Ernesto Calvo A.
Base de datos
Objetos comunes de ADO.NET
Connection
Command
DataSet DataReader
DataAdapter
Gestiona la conexión a una base de datos
Ejecuta un comando de consultaen la base de datos
Almacena datos en un caché distinto de la base de datos
Proporciona acceso eficaz a unflujo de datos de sólo lectura
Intercambia datos entre el conjunto de datos y la base de datos
Ernesto Calvo A.
Ernesto Calvo A.
Como crear un DataSet, un DataTable, y un DataColumn
Creando un DataSetDim myDataSet As DataSetmyDataSet = New DataSet(“CustomersDataSet”)
Creando un DataTableDim workTable As New DataTable (“Customers”)
Creando un DataColumn y agregarlo a un DataTableDim workCol As DataColumn = workTable.Columns.Add( _“CustID”, GetType (System.Int32)
Ernesto Calvo A.
Ernesto Calvo A.
DataAdapter
SelectCommandInsertCommand
UpdateCommandDeleteCommand
TableMappings
Database
DataSet
DataAdapter
Ernesto Calvo A.
Ernesto Calvo A.
Cómo utilizar un objeto DataAdapter
Crear un DataAdapter Declarar con la palabra clave Dim Pasar una cadena de consulta y un objeto Connection
como parámetros
Métodos principales de DataAdapter:
El método Fill puebla un conjunto de datos (data set)
El método Update transmite los cambios al almacén de datos
Dim PubsAdapter As New SQLDataAdapter _("Select * from Titles“,PubsSQLConn)
Ernesto Calvo A.
Ernesto Calvo A.
Usando Unique Constraints
Unique constraints
Ejemplo:[Visual Basic]ds.Tables("Product").Columns(“ProductName”).Unique
= True
Ernesto Calvo A.
Ernesto Calvo A.
Usando AutoIncrement (DataColumn)
Definición
Ejemplo:
Dim myColumn As New DataColumn(“ID”, GetType(System.Int32))
With myColumn.AutoIncrement = True.AutoIncrementSeed = 1000.AutoIncrementStep = 10
End With
Ernesto Calvo A.
Ernesto Calvo A.
Creando expresiones
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.
Ernesto Calvo A.
Como enlazar a un dato a un control Windows
Enlace simple y enlace Complejo
Enlace usando herramientas gráficas y programaticamente
Sintaxis:Control.DataBindings.Add( _
“Propiedad del control”, DataSet, “Tabla.Columna")
Ejemplo:TextBox1.DataBindings.Add( _
"Text", dsNorthwind, "Products.ProductID")
Ernesto Calvo A.
Ernesto Calvo A.
Enlazar un DataSet a un DataGridView
El enlace puede ser hecho en tiempo de diseño o programaticamente( por codigo)
Para realizar el enlace de un DataSet a un DataGridViewprogramaticamente:DataGridView1.SetDataBinding(dsNorth, “Suppliers”)
Propiedades:grv.dataSource=dataViewgrv.AutoGenerateColumns = Falsegrv.Columns.Add("IDCodigo", "Codigo")grv.Columns(4).DataPropertyName = "IDCodigo"
Ernesto Calvo A.
Ernesto Calvo A.
Definiendo relaciones entre DataTables
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.
Como crear una clave primaria(Primary Key Constraint)
Usando la propiedad PrimaryKey de un DataTable
dtClientes.PrimaryKey= New DataColumn()_ {dtClentes.Columns(“CustomerID”)}
Usando una constraint para crear una primary keyworkTable.Constraints.Add(“PK_Customer”,_
workTable.Columns(“CustomerID”), True)
Definiendo multiples columnas como una primary keyworkTable.PrimaryKey=New DataColumn() _
{workTable.Columns(“CustLName”), _workTable.Columns(“CustFName”)}
Usando Foreign Key Constraints para restringir acciones
Acciones a llevarse a cabo en tablas relacionadas
DeleteRule Descripcion
Cascade 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
Ernesto Calvo A.
Ernesto Calvo A.
Objeto DataRelation
Definición
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.
Ernesto Calvo A.
Como crear un objeto DataRelation
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.
Como navegar entre Tablas relacionadas
El método GetChildRows de un DataRow
Ejemplo:
Dim drCustomer As DataRowDim drOrder As DataRowFor Each drCustomer In
dsNorthwind.Tables(“Customer”).RowsFor Each drOrder In drCustomer.GetChildRows( _
“FK_CustomersOrders”)‘ process row
NextNext
Ernesto Calvo A.
Ernesto Calvo A.
Modificando datos en un DataTable
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.
Ernesto Calvo A.
Como insertar un nuevo Registro
Creando a nuevo registroDim workRow As DataRow = workTable.NewRow()
Llenando un registroworkRow(“CustLName”)=“Smith”workRow(1)=“Smith”
Agregando un registro a un DataTableworkTable.Rows.Add(workRow)
Creando, llenando, y agregando un registroworkTable.Rows.Add(new Object() {1, “Smith})
Ernesto Calvo A.
Ernesto Calvo A.
Modificando datos en un DataTable
La clase DataRow
Los métodos BeginEdit, EndEdit, y CancelEdit
Ejemplodt.Rows(3).BeginEdit()dt.Rows(3).Items(“FirstName”)=“John”dt.Rows(3).Items(“LastName”)=“Smith”dt.Rows(3).EndEdit()
Ernesto Calvo A.
Ernesto Calvo A.
Como eliminar un Registro
El método Remove del objeto DataRowCollection
Ejemplo:workTable.Rows.Remove(workRow)
El método Delete del objeto DataRow
Ejemplo:workRow.Delete
Ernesto Calvo A.
Ernesto Calvo A.
Como manejar un evento de un DataTable
Ejemplo:
Private WithEvents dtProducts As DataTablePrivate 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.
Ernesto Calvo A.
Como aceptar o rechazar Cambios
Método: AcceptChanges
Propiedad : RowState
Chequeando errores
Ernesto Calvo A.
Ernesto Calvo A.
Usando el objeto DataView
Temas:
El objeto DataView
Como se define un objeto DataView
Ordenar y filtrar un objeto DataTable usando el objetoDataView
Ernesto Calvo A.
Ernesto Calvo A.
Objeto DataView
Crea múltiples 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 expresión para filtrar la vista RowStateFilter: Indica o asigna el estado del filtro
None, Unchanged, New, Deleted, ModifiedCurrent, y otros
Ernesto Calvo A.
Ernesto Calvo A.
Objeto DataView
Server Data Store
Database
Connection Stored Procedure
DataSet
Data Table
Data Table
Screenshot
DataView
Ernesto Calvo A.
Ernesto Calvo A.
Como se define un objeto DataView
Creando un DataView usando controles del form
Crear un DataView programaticamenteDim dv As New
DataView(dsNorthwind.Tables(“Products”))dv.Sort = “UnitPrice”dv.RowFilter = “CategoryID > 4”DataGrid1.DataSource = dv
Aplicando un DataView a un DataTableDim dview as new DataView()dview.Table = ds1.Tables(“Categories”)
Ernesto Calvo A.
Ernesto Calvo A.
Ordenar y filtrar un DataTable usando un DataView
Filtrando y ordenando usando el objeto DataViewobjectDataView1.RowStateFilter=DataViewRowState. _
CurrentRows
Filtrando y ordenando usando Default DataViewDataset1.Customers.DefaultView.Sort=“City”
Ernesto Calvo A.
Ernesto Calvo A.
Enlazar un DataView a un Control de Lista
Mostrar un DataView en un ComboBox
Dim dv As DataView = obj.GetDVWith cboUbigeo
.DisplayMember = "UbiDetalle"
.ValueMember = "UbiCodigo"
.DataSource = dvEnd With
Ernesto Calvo A.
Ernesto Calvo A.
Módulo:Crystal Report
Ernesto Calvo A.
Ernesto Calvo A.
Módulo:LINQ y ADO.NET
Ernesto Calvo A.
Ernesto Calvo A.
ANEXOS
Ernesto Calvo A.
Ernesto Calvo A.
Acceso A Datos Conectado
Acceso A Datos Desconectado
Vista XML De Datos Relacionales
¿Cuándo usar qué?
Ernesto Calvo A.
Ernesto Calvo A.
Proveedores Gestionados Conexión, Transacción
Conectando a un DataSourceIniciando/Finalizando Transacciones
Comando, ParametrosActualizaciones, Selects, DDL
DataReader(FO/RO) Cursor
DataAdapterPone datos en el DatasetLee cambios del DataSet
¿Cuándo usar qué? Acceso A Datos Conectado
Ernesto Calvo A.
Ernesto Calvo A.
DataSet Datos de Aplicación
Resultados remotosSOAP, WebMethods, Remoting
Cacheo De ResultadosASP.NET Cache
Resultados PersistentesGuardar Datos como XML, Schema como XSD
Interacción Con El UsuarioScrolling, sorting, filtering
DataView, DataViewManagerEnlazar controles Windows
¿Cuándo usar qué? Acceso A Datos Desconectado
Ernesto Calvo A.
Ernesto Calvo A.
XML
XmlDocumentXmlDataDocumentImplementa nivel core, 1 y 2 del W3C DOM
XPathNavigatorProvee acceso aleatorio de “sólo lectura”
XslTransformSoporta sintaxis XSLT 1.0
Acceso a Datos XML
Ernesto Calvo A.
Ernesto Calvo A.
ADO.NET – Accediendo a datos Conectado
En un escenario conectado, los recursos se mantienen en el servidorhasta que la conexión se cierra
1) Abrir Conexión 2) Ejecutar Comando 3) Procesar Filas en DataReader 4) Cerrar Reader 5) Cerrar Conexión
Ernesto Calvo A.
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 Conexión
4) Actualizar fuente de datos mediante DataAdapter
5) Cerrar Conexión
ADO.NET – Accediendo a datos Desconectado
Ernesto Calvo A.
Ernesto Calvo A.
XmlTextWriter
XmlTextReader
<XML>
XmlDocument
DocumentNavigator
XmlReader
XmlValidatingReader XmlNodeReader
ADO.NET - Soporte a XML
Ernesto Calvo A.
Ernesto Calvo A.
¿Qué es un “Assembly”?
Un Assembly es la unidad mínima de ejecución, distribución, instalación y versionado de aplicaciones .NET
Metadata
Código CompiladoMSIL
Recursos
MiBiblioteca.DLL
Descripción de TiposClases
Clases BaseInterfaces Implementadas
Atributos de las ClasesMétodos de las Clases
NombreVersiónCultura
Manifiesto del Assembly
Otros AssembliesPermisos de Seguridad
Tipos Externos
Ernesto Calvo A.
Ernesto Calvo A.
Assemblies - Aplicaciones .NET
Uno o más Assemblies
Al ejecutar una aplicación, ¿cómo ubico los assembliesnecesarios?
El Class Loader busca en el directorio local (preferido) Global Assembly Cache (GAC)
Diferentes aplicaciones pueden usar diferentes versiones
Actualizaciones más simples
Desinstalación más simple
Ernesto Calvo A.
Ernesto Calvo A.
.NET Framework Class Library
Conjunto de Tipos básicos (clases, interfaces, etc.) quevienen incluídos en el .NET Framework
Los tipos están organizados en jerarquías lógicas de nombres, denominados NAMESPACES
Los tipos son INDEPENDIENTES del lenguaje de desarrollo
Es extensible y totalmente orientada a objetos
Ernesto Calvo A.
Ernesto Calvo A.
Código Fuente
Cualquier lenguaje.NET
CompiladorAssembly
(MSIL)
Bibliotecao Ejecutable
CLR – Proceso de Compilación
Ernesto Calvo A.
Ernesto Calvo A.
Interoperabilidad
.NET FrameworkServicios Web XML
C#
C++ VB
Otros... .NET
COMCOM INTEROP
Ernesto Calvo A.
Ernesto Calvo A.
¿Qué es una clase?
Clase Clasificación
Clasificación en base a comportamiento y atributos comunes
Crea un vocabulario
La forma en que nos comunicamos
La forma en que pensamos
Ernesto Calvo A.
Ernesto Calvo A.
¿Qué es una clase?
Construcción Estática
Describe:
Comportamiento común
Atributos [estado]
Estructura de datos
Incluye:
Datos
Funciones o métodos
Ernesto Calvo A.
Ernesto Calvo A.
Constructor y Destructor
Dos métodos 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.
Ernesto Calvo A.
¿Qué es un objeto?
Ernesto Calvo A.
Ernesto Calvo A.
Instancia de una clase
Un objeto posee:
Identidad: Relación única entre el objeto del modelo y el ente de la realidad que representa. Se implementa a través de un id único en el modelo.
Comportamiento: Resuelve un conjunto particular de problemas a través de su protocolo.
Estado: Almacena informaciónFijaVariable
¿Qué es un objeto?