visual basic .net
-
Upload
vhaguilar -
Category
Technology
-
view
3.446 -
download
1
Transcript of visual basic .net
Helkyn Coello CostaHelkyn Coello CostaIng. InformáticoIng. InformáticoMCSD / MCT / MCDBAMCSD / MCT / MCDBA
01.01.22
Capítulo 3:Capítulo 3:
Introducción a ADO.NETIntroducción a ADO.NET
01.01.33
Módulo 1: Módulo 1: Evolución del Acceso a DatosEvolución del Acceso a Datos
EvoluciónEvolución Qué es ADO.NETQué es ADO.NET Características de ADO.NETCaracterísticas de ADO.NET De ADO a ADO.NETDe ADO a ADO.NET Arquitectura de ADO.NETArquitectura de ADO.NET Modelo de objetos de ADO.NETModelo de objetos de ADO.NET ProveedoresProveedores Data desconectada VS data conectadaData desconectada VS data conectada
01.01.44
Evolución del Acceso a DatosEvolución del Acceso a DatosEvoluciónEvolución
1-Tier(monolithic)
Client logicBusiness logicData storage
3-Tier
“Thin” Client
N-Tier
2-Tier
“Fat” Client
Internet
XML Web
service
XML Web
service
01.01.55
Evolución del Acceso a DatosEvolución del Acceso a DatosQué es ADO.NETQué es ADO.NET Una gran gran mejora de ADOUna gran gran mejora de ADO Diseñado para data conectada y desconectadaDiseñado para data conectada y desconectada
Ventajas para integrar distintos tipos de dataVentajas para integrar distintos tipos de data XML de salida y entradaXML de salida y entrada
Diseño de alto rendimientoDiseño de alto rendimiento Objetos y proveedores optimizadosObjetos y proveedores optimizados
Visual Studio.NET diseñado para trabajar con Visual Studio.NET diseñado para trabajar con ADO .NETADO .NET Integración con objetos y múltiples asistentesIntegración con objetos y múltiples asistentes
Fuertemente integrado con el .NET FrameworkFuertemente integrado con el .NET Framework Manejo de Excepciones, nombres, notificaciones, etc.Manejo de Excepciones, nombres, notificaciones, etc.
01.01.66
Evolución del Acceso a DatosEvolución del Acceso a DatosQué es ADO.NETQué es ADO.NET
ADO.NET soporta los sgtes tipos de data storage: ADO.NET soporta los sgtes tipos de data storage: No estructuradoNo estructuradoEstructurado, data no-jerarquicaEstructurado, data no-jerarquica
Archivos (CSV), hojas de calculo, archivos Archivos (CSV), hojas de calculo, archivos de Microsoft Exchange, Active Directory yde Microsoft Exchange, Active Directory yotrosotros
JerarquicaJerarquica Documentos XML y otrosDocumentos XML y otros
Base de datos RelacionalBase de datos RelacionalSQL Server, Oracle, Access, y otrosSQL Server, Oracle, Access, y otros
01.01.77
Evolución del Acceso a DatosEvolución del Acceso a DatosQué es ADO.NETQué es ADO.NET
Los namespaces relacionado con data son:Los namespaces relacionado con data son:
System.DataSystem.Data System.Data.CommonSystem.Data.Common System.Data.SqlClientSystem.Data.SqlClient System.Data.OleDbSystem.Data.OleDb System.Data.SqlTypesSystem.Data.SqlTypes System.XmlSystem.Xml
01.01.88
Evolución del Acceso a DatosEvolución del Acceso a DatosCaracterísticas de ADO.NETCaracterísticas de ADO.NET Data classesData classes
Contenedores de datos; no saben nada de extraer Contenedores de datos; no saben nada de extraer informacion de la base de datosinformacion de la base de datos
Objecto clave: DataSet = Cache desconectado y en Objecto clave: DataSet = Cache desconectado y en memoriamemoria
Database classesDatabase classes Usaod para leer y escribir data de fuente de datosUsaod para leer y escribir data de fuente de datos Proveedores manejados: SQL ServerProveedores manejados: SQL Server™™ y OLEDB y OLEDB Objetos clave:Objetos clave:
Connection = Se conecta a la fuente de datosConnection = Se conecta a la fuente de datos Command = Ejecuta stored proceduresCommand = Ejecuta stored procedures DataAdapter = Conecta DataSet a la base de datosDataAdapter = Conecta DataSet a la base de datos DataReader=Cursor Forwardonly,readonly (fire hose)DataReader=Cursor Forwardonly,readonly (fire hose)
01.01.99
Evolución del Acceso a DatosEvolución del Acceso a DatosCaracterísticas de ADO.NETCaracterísticas de ADO.NET
Filosofia de diseñoFilosofia de diseño DataReaderDataReader
RecordSets Forward-only y read-onlyRecordSets Forward-only y read-only DataSetDataSet
Cache Desconectado y en memoriaCache Desconectado y en memoria DataAdapterDataAdapter
Conecta un DataSet con una fuente de Conecta un DataSet con una fuente de datosdatos
01.01.1010
Evolución del Acceso a DatosEvolución del Acceso a DatosDe ADO a ADO.NETDe ADO a ADO.NET
ADO evoluciona en ADO.NETADO evoluciona en ADO.NET
RecordSetRecordSet DataReaderDataReader
DataAdapterDataAdapter
DataSetDataSet
CommandCommand CommandCommand
ConnectionConnectionConnectionConnection
01.01.1111
Evolución del Acceso a DatosEvolución del Acceso a DatosArquitectura de ADO.NETArquitectura de ADO.NET
Business TierBusiness Tier Data TierData Tier
Presentation TierPresentation TierWindows Forms
Web Forms
Business to Business
Data Object (Class)
DataSet
DataSetDataSet
InternetInternetIntranetIntranet
Data AdapterData Adapter
Data AdapterData Adapter
(BizTalk, for example)
XML
MyApp.Exe
IE
01.01.1212
Evolución del Acceso a DatosEvolución del Acceso a DatosArquitectura de ADO.NETArquitectura de ADO.NET
ADO.NET esta fuertemente integrado con XMLADO.NET esta fuertemente integrado con XML Usando XML en una aplicacion ADO.NET
desconectada
XML Web Services
DataSetDataSet
Request data1111
SQL Query2222
Resultado3333XML4444
Updated XML5555SQL updates
6666
Fuente de DatosCliente
DataSetDataSet
01.01.1313
Evolución del Acceso a DatosEvolución del Acceso a DatosModelo de Objetos de ADO.NETModelo de Objetos de ADO.NET
DataSet
SQL Server .NET Data Provider
SQL Server .NET Data Provider
OLE DB .NET Data ProviderOLE DB .NET Data Provider
SQL Server 7.0(and later)
OLEDB sources(SQL Server 6.5)
01.01.1414
Evolución del Acceso a DatosEvolución del Acceso a DatosProveedores AdministradosProveedores Administrados
Manejan la interaccion con la fuente de Manejan la interaccion con la fuente de datosdatos Equivalente a la capa OLEDBEquivalente a la capa OLEDB Expone directamente interfaces consuidorasExpone directamente interfaces consuidoras Especifico y optimizado para fuentes de datosEspecifico y optimizado para fuentes de datos Dos proveedores estandares:Dos proveedores estandares:
System.Data.OLEDB – Cualquier DataSourceSystem.Data.OLEDB – Cualquier DataSource System.Data.SQLClient – Para SQL ServerSystem.Data.SQLClient – Para SQL Server
01.01.1515
Evolución del Acceso a DatosEvolución del Acceso a DatosData Conectada VS Data DesconectadaData Conectada VS Data Desconectada
Una ambiente conectado es uno en el cual los Una ambiente conectado es uno en el cual los usuarios constantemente se conectan a la base usuarios constantemente se conectan a la base de datosde datos
Ventajas:Ventajas: El ambiente es mas facil de asegurarEl ambiente es mas facil de asegurar La concurrencia is mas facilmente controladaLa concurrencia is mas facilmente controlada La data suele ser mas actual que en otros La data suele ser mas actual que en otros
escenariosescenariosDesventajas:Desventajas:
Se debe tener una conexion de red permanenteSe debe tener una conexion de red permanente EscalabilidadEscalabilidad
01.01.1616
Evolución del Acceso a DatosEvolución del Acceso a DatosData Conectada VS Data DesconectadaData Conectada VS Data Desconectada
Acceso a Datos ConectadoAcceso a Datos Conectado Transacciones son requiridasTransacciones son requiridas No hay interaccion del usuario con la dataNo hay interaccion del usuario con la data Procesamiento de grandes cantidades de dataProcesamiento de grandes cantidades de data
Acceso a Datos desconectadoAcceso a Datos desconectado Usa DataSet cuando:Usa DataSet cuando:
La interaccion del usuario es requeridaLa interaccion del usuario es requerida Si data en memoria es requeridaSi data en memoria es requerida Aplicaciones distribuidas Aplicaciones distribuidas
Cuando usar cualCuando usar cual::
01.01.1717
Evolución del Acceso a DatosEvolución del Acceso a DatosData Conectada VS Data DesconectadaData Conectada VS Data Desconectada
SQL Server 7.0(and later)
En un escenario En un escenario conectado, los conectado, los recursos son recursos son puestos en el puestos en el servidor hasta que servidor hasta que la conexión se la conexión se cierrecierre
1.1. Abrir conexionAbrir conexion
2.2. Ejeuctar comandoEjeuctar comando
3.3. Procesar las filas en Procesar las filas en un readerun reader
4.4. Cerrar el readerCerrar el reader
5.5. Cerrar la conexionCerrar la conexion
SqlConnectionSqlConnection
SqlCommandSqlCommand
SqlDataReaderSqlDataReader
01.01.1818
Evolución del Acceso a DatosEvolución del Acceso a DatosData Conectada VS Data DesconectadaData Conectada VS Data Desconectada En un ambiente desconectado, un subconjunto de En un ambiente desconectado, un subconjunto de
dat del data store puede ser copiado y actualizado dat del data store puede ser copiado y actualizado independientemente y los cambios devueltos al data independientemente y los cambios devueltos al data storestore
VentajasVentajas Se trabaja en cualquier momento, y se puede conectar Se trabaja en cualquier momento, y se puede conectar
con la fuente de datos en cualquier momento para con la fuente de datos en cualquier momento para procesar la peticiónprocesar la petición
Otros usuarios pueden usar la conexionOtros usuarios pueden usar la conexion Incrementa la escalabilidad y rendimientoIncrementa la escalabilidad y rendimiento
DesventajasDesventajas La data no esta siempre actualizadaLa data no esta siempre actualizada Conflictos de actualizaciòn pueden ocurrir que deben Conflictos de actualizaciòn pueden ocurrir que deben
ser resueltosser resueltos
01.01.1919
Evolución del Acceso a DatosEvolución del Acceso a DatosData Conectada VS Data DesconectadaData Conectada VS Data Desconectada
En un escenario En un escenario desconectado, los desconectado, los recursos son mantenidos recursos son mantenidos en el servidor mientras se en el servidor mientras se procesa la dataprocesa la data
1.1. Abrir la conexionAbrir la conexion
2.2. Llenar el DataSetLlenar el DataSet
3.3. Cerrar la conexionCerrar la conexion
4.4. Procesar el DataSetProcesar el DataSet
5.5. Abrir la conexionAbrir la conexion
6.6. Actualizar el data sourceActualizar el data source
7.7. Cerrar la conexionCerrar la conexion
SqlConnectionSqlConnection
SqlDataAdapterSqlDataAdapter
DataSetDataSet
SQL Server 7.0(and later)
01.01.2020
Módulo 2: Módulo 2: Objetos de ADO.NETObjetos de ADO.NET
El Objeto ConnectionEl Objeto Connection El Objeto El Objeto CommandCommand El Objeto El Objeto DataReaderDataReader
01.01.2121
Objetos de ADO.NETObjetos de ADO.NETEl Objeto ConnectionEl Objeto Connection
Representa una conexion con la fuente de Representa una conexion con la fuente de datosdatos
Sobre una Conexion tu puedes…Sobre una Conexion tu puedes… Personalizar la conexión hacia una base de Personalizar la conexión hacia una base de
datosdatos Iniciar, confirmar, y abortar transaccionesIniciar, confirmar, y abortar transacciones
Equivalente al objeto ADODB.ConnectionEquivalente al objeto ADODB.Connection
01.01.2222
Objetos de ADO.NETObjetos de ADO.NETEl Objeto ConnectionEl Objeto Connection//Specify the System.Data.SQL Namespace//Specify the System.Data.SQL NamespaceUsing System.Data.SQL;Using System.Data.SQL;
// Create an instance of an SQLConnection // Create an instance of an SQLConnection objectobjectSQLConnection cnn = new SQLConnection();SQLConnection cnn = new SQLConnection();
// Set the connection string// Set the connection stringcnn.ConnectionString = cnn.ConnectionString = "server=localhost;uid=sa;database=pubs";"server=localhost;uid=sa;database=pubs";
//Open the Connection//Open the Connectioncnn.Open();cnn.Open();
01.01.2323
Objetos de ADO.NETObjetos de ADO.NETEl Objeto CommandEl Objeto Command Representa un comando a ser ejecutadoRepresenta un comando a ser ejecutado Con un command tu puedes:Con un command tu puedes:
Definir una sentencia a ser ejecutada en el servidorDefinir una sentencia a ser ejecutada en el servidor Establecer información de parametros del commandEstablecer información de parametros del command Devolver valores de la ejecución del commandDevolver valores de la ejecución del command
Corresponde al objeto ADODB.CommandCorresponde al objeto ADODB.Command Metodos:Metodos:
ExecuteReader - Ejecuta y retorna un DataReaderExecuteReader - Ejecuta y retorna un DataReader ExecuteNonQuery - Ejecuta y retorna nothingExecuteNonQuery - Ejecuta y retorna nothing ExecuteScalar - Ejecuta y retorna el 1er valorExecuteScalar - Ejecuta y retorna el 1er valor
Puede contener parametrosPuede contener parametros
01.01.2424
Objetos de ADO.NETObjetos de ADO.NETEl Objeto CommandEl Objeto Command
// Create Command// Create Command
SQLCommand cmd = new SQLCommand();SQLCommand cmd = new SQLCommand();
// Set command's active connection and command text// Set command's active connection and command text
cmd.ActiveConnection = cnn;cmd.ActiveConnection = cnn;
cmd.CommandText = "Select au_lname from authors cmd.CommandText = "Select au_lname from authors where state = @param1";where state = @param1";
// Create parameter and set value// Create parameter and set value
cmd.Parameters.Add( cmd.Parameters.Add(
new SQLParameter("@param1", new SQLParameter("@param1", typeof(String),2) );typeof(String),2) );
cmd.Parameters["@param1"].Value = "CA";cmd.Parameters["@param1"].Value = "CA";
01.01.2525
Objetos de ADO.NETObjetos de ADO.NETEl Objeto DataReaderEl Objeto DataReader
El DataReader provee un flujo forward-only y de solo El DataReader provee un flujo forward-only y de solo lectura sobre los datoslectura sobre los datos Representa los resultados de un comando ejecutadoRepresenta los resultados de un comando ejecutado
El DataReader habilita…El DataReader habilita… Obtener un flujo de resultados de la fuente de datosObtener un flujo de resultados de la fuente de datos
Equivalente al RecordSet FO/ROEquivalente al RecordSet FO/RO No soporta scrolling y actualizacionesNo soporta scrolling y actualizaciones Los campos son accesados con tipificacion fuerte Los campos son accesados con tipificacion fuerte
(strongly typed) en vez de usar FieldsCollection(strongly typed) en vez de usar FieldsCollection Rendimiento: myRow.GetInt(0)Rendimiento: myRow.GetInt(0) Acceso simple a nombres para compabilidad/facil Acceso simple a nombres para compabilidad/facil
uso: myRow["fieldname"]uso: myRow["fieldname"]
01.01.2626
Objetos de ADO.NETObjetos de ADO.NETEl Objeto DataReaderEl Objeto DataReader// Define DataReader// Define DataReaderIDataReader dr;IDataReader dr;
// Execute Command// Execute Commandcmd.Execute(out dr);cmd.Execute(out dr);
// Write out the results// Write out the resultswhile(dr.Read())while(dr.Read()){{
Console.WriteLine("Name = " + Console.WriteLine("Name = " + dr["au_lname"]);dr["au_lname"]);
}}
// Close the connection// Close the connectioncnn.Close();cnn.Close();
01.01.2727
Módulo 3: Módulo 3: Manejo de DataSetsManejo de DataSets
El Objeto DataSetEl Objeto DataSet Ciclo de Vida de un DataSetCiclo de Vida de un DataSet Arquitectura de un DataSetArquitectura de un DataSet Modelo de objetos del DataSetModelo de objetos del DataSet Ejemplo de DataSetEjemplo de DataSet El Objeto El Objeto DataApdaterDataApdater El Objeto El Objeto DataViewDataView DataSets fuertemente DefinidosDataSets fuertemente Definidos DatabindingDatabinding
01.01.2828
Manejo de DataSetsManejo de DataSetsEl Objeto DataSetEl Objeto DataSet El equivalente mas cercano El equivalente mas cercano
al Recordset de ADO, peroal Recordset de ADO, peromejormejor
Vistas relacionales de datosVistas relacionales de datos Contiene tables, columns, rows, Contiene tables, columns, rows,
constraints,views y relationsconstraints,views y relations Modelo desconectadoModelo desconectado
No sabe nada del data source No sabe nada del data source Indizacion tipo Array (Array-like)Indizacion tipo Array (Array-like) Tipificacion fuerte (Strong typing)Tipificacion fuerte (Strong typing) Soporte de Databinding y actualizaciones batchSoporte de Databinding y actualizaciones batch Se conecta a la fuente de datos via DataAdapterSe conecta a la fuente de datos via DataAdapter
DataSetDataSet
TablesTables
TableTable
ColumnsColumns
ColumnColumn
ConstraintsConstraints
ConstraintConstraint
RowsRows
RowRow
RelationsRelations
RelationRelation
01.01.2929
Manejo de DataSetsManejo de DataSetsEl Objeto DataSetEl Objeto DataSet Vista relacional de la dataVista relacional de la data
Tables, Columns, Rows, Constraints,RelationsTables, Columns, Rows, Constraints,Relations Crea metadata directamente e inserta dataCrea metadata directamente e inserta data Modelo de Cache Explicita Modelo de Cache Explicita
Objecto remoto, desconectadoObjecto remoto, desconectado No sabe nada del data sourceNo sabe nada del data source
Comportamiento comunComportamiento comun Caracteristicas de rendimiento predeciblesCaracteristicas de rendimiento predecibles
Indizacion tipo Array (Array-like )Indizacion tipo Array (Array-like ) Tipificacion fuerte (Strong Typing)Tipificacion fuerte (Strong Typing)
01.01.3030
Manejo de DataSetsManejo de DataSetsCiclo de Vida de un DataSetCiclo de Vida de un DataSet
OriginalDataStore
DataSet
Table1
Table2
Establece las Establece las relacionesrelaciones
DataSet
Table1
Table2
Hace los Hace los cambios a la datacambios a la data
DataSet
Table1
Table2
Resuelve los cambios Resuelve los cambios con el proveedor con el proveedor manejadomanejado
Extrae tablasExtrae tablasCon Proveedor Con Proveedor
ManejadoManejado
01.01.3131
Manejo de DataSetsManejo de DataSetsCiclo de Vida de un DataSetCiclo de Vida de un DataSet
DataSet
Table1
Table2
DataSet
Table1
Table2
DataSet
Table1
Table2
OriginalDataStore
Establece las relaciones
Hace los cambios a la data
Resuelve los cambios Resuelve los cambios con el proveedor con el proveedor manejadomanejado
Extrae tablasExtrae tablasCon proveedore Con proveedore
manejadomanejado
OperacionesOperacionesConectadasConectadas
01.01.3232
Manejo de DataSetsManejo de DataSetsCiclo de Vida de un DataSetCiclo de Vida de un DataSet
DataSet
Table1
Table2
DataSet
Table1
Table2
DataSet
Table1
Table2
OriginalDataStore
Establece las Establece las relacionesrelaciones
Hace los Hace los cambios a la datacambios a la data
Resuelve los cambios con el proveedor manejado
Extrae tablasCon proveedor
manejadoOperaciones Operaciones
DesconectadasDesconectadas
01.01.3333
Manejo de DataSets Manejo de DataSets Arquitectura del DataSetArquitectura del DataSet
Employees OrdersCustomersProductsCategories
Categories Products
SqlDataAdapter OleDbDataAdapter
SQL Server 2000
Customers Orders
SQL Server 6.5
DataSet
XML Web service
XML Web service
XmlDataDocumentXML File
XML File
01.01.3434
Manejo de DataSets Manejo de DataSets Modelo de objetos del DataSetModelo de objetos del DataSet
ServidorServidor Fuente de DatosFuente de Datos
DatabaseDatabase
ConnectionConnection Stored Stored ProcedureProcedure
DataSetDataSet
DataTableDataTable
DataTableDataTable
01.01.3535
Manejo de DataSets Manejo de DataSets Modelo de objetos del DataSetModelo de objetos del DataSet
Colecciones comunesColecciones comunes Tables (coleccion de objetos DataTable)Tables (coleccion de objetos DataTable) Relations (coleccion de objetos DataRelation)Relations (coleccion de objetos DataRelation)
Soporte de Data binding a controles web y Soporte de Data binding a controles web y windowswindows
El esquema (Schema) puede ser definido El esquema (Schema) puede ser definido programaticamente o usando XSDprogramaticamente o usando XSD
DataRow
DataColumn
DataTable
DataRelation Constraints
01.01.3636
Manejo de DataSets Manejo de DataSets Modelo de objetos del DataSetModelo de objetos del DataSet
Creando un DataSetCreando un DataSet Arrastra y suelta un control dataSet desde Arrastra y suelta un control dataSet desde
el ToolBoxel ToolBox Creando un DataTableCreando un DataTable
Edita la coleccionTables del DataSet Edita la coleccionTables del DataSet usando la Ventana de Propiedadesusando la Ventana de Propiedades
Creando un DataColumn y agregandolo al Creando un DataColumn y agregandolo al DataTableDataTable Edita la coleccion Columns del DataTable Edita la coleccion Columns del DataTable
usando la Ventana de Propiedadesusando la Ventana de Propiedades
01.01.3737
Manejo de DataSets Manejo de DataSets Ejemplo de DataSetEjemplo de DataSet// Create a "Pubs" DataSet// Create a "Pubs" DataSet
DataSet pubs = new DataSet("Pubs");DataSet pubs = new DataSet("Pubs");
//Create an "Inventory" Table//Create an "Inventory" Table
DataTable inventory = new DataTable("Inventory");DataTable inventory = new DataTable("Inventory");
inventory.Columns.Add("TitleID",typeof(Int32));inventory.Columns.Add("TitleID",typeof(Int32));
inventory.Columns.Add("Quantity",typeof(Int32));inventory.Columns.Add("Quantity",typeof(Int32));
// Add Inventory table to Pubs DataSet// Add Inventory table to Pubs DataSet
pubs.Tables.Add(inventory);pubs.Tables.Add(inventory);
// Add a record to the Inventory table// Add a record to the Inventory table
DataRow row = inventory.NewRow();DataRow row = inventory.NewRow();
row["TitleID"]=1;row["TitleID"]=1;
row["Quantity"]=25;row["Quantity"]=25;
inventory.Rows.Add(row);inventory.Rows.Add(row);
01.01.3838
Manejo de DataSetsManejo de DataSetsEl Objeto DataAdapterEl Objeto DataAdapter Sabe como cargar una tabla del Sabe como cargar una tabla del
DataStore y escribir los cambiosDataStore y escribir los cambios Expone 2 métodos:Expone 2 métodos:
Fill (DataSet y Table)Fill (DataSet y Table) Update (DataSet y Table)Update (DataSet y Table)
Provee mapeo entre tablas y Provee mapeo entre tablas y columnascolumnas
Los usuarios puede establecer Los usuarios puede establecer comandos insert/update/delete comandos insert/update/delete explicitosexplicitos Como: especificar SPsComo: especificar SPs
Permite que un DataSet sea poblado Permite que un DataSet sea poblado de multiples fuentes de datosde multiples fuentes de datos
SelectCommand
InsertCommand
DeleteCommand
ConnectionConnectionDataAdapterDataAdapter
ConnectionConnection
UpdateCommandUpdateCommand
SelectCommandSelectCommand
InsertCommandInsertCommand
DeleteCommandDeleteCommand
TableMappingsTableMappings
01.01.3939
Manejo de DataSets Manejo de DataSets El Objeto DataAdapterEl Objeto DataAdapter
Data sourceDataAdapterDataTable
DataTable
DataSet
DataAdapter
FillFill
UpdateUpdateFillFill
UpdateUpdate
01.01.4040
Manejo de DataSets Manejo de DataSets El Objeto DataAdapterEl Objeto DataAdapter
DataAdapterDataAdapter
SelectCommandSelectCommand
InsertCommandInsertCommand
UpdateCommandUpdateCommand
DeleteCommandDeleteCommand
TableMappingsTableMappings
DatabaseDatabase
DataSetDataSet
01.01.4141
Manejo de DataSets Manejo de DataSets El Objeto DataAdapterEl Objeto DataAdapter
sp_SELECT
XxxCommandXxxCommand
SelectCommand UpdateCommand InsertCommand DeleteCommand
XxxDataAdapter
XxxCommandXxxCommand XxxCommandXxxCommand XxxCommandXxxCommand
XxxConnectionXxxConnection
sp_UPDATE sp_INSERT sp_DELETE
XxxDataReaderXxxDataReader
01.01.4242
Manejo de DataSets Manejo de DataSets El Objeto DataAdapterEl Objeto DataAdapter
Propiedades del DataAdapterPropiedades del DataAdapter SelectCommandSelectCommand InsertCommandInsertCommand UpdateCommandUpdateCommand DeleteCommandDeleteCommand
Metodos usados por los DataAdaptersMetodos usados por los DataAdapters FillFill UpdateUpdate
01.01.4343
Manejo de DataSets Manejo de DataSets El Objeto DataAdapterEl Objeto DataAdapter Puedes crear un DataAdapter para ejecutar Puedes crear un DataAdapter para ejecutar
una nueva sentencia SELECTuna nueva sentencia SELECT Acceso a datos de solo lectura para Acceso a datos de solo lectura para
aplicaciones desconectadasaplicaciones desconectadas Dos formas de crear DataAdapterDos formas de crear DataAdapter
Usa el Data Adapter Configuration WizardUsa el Data Adapter Configuration Wizard Escribe código tu mismoEscribe código tu mismo
Debes especificarDebes especificar Una conexion nueva o existenteUna conexion nueva o existente La sentencia SELECT para la consultaLa sentencia SELECT para la consulta
01.01.4444
Manejo de DataSets Manejo de DataSets El Objeto DataSetEl Objeto DataSet// Create a "Pubs" DataSet// Create a "Pubs" DataSet
DataSet pubs = new DataSet("Pubs");DataSet pubs = new DataSet("Pubs");
//Create an "Inventory" Table//Create an "Inventory" Table
DataTable inventory = new DataTable("Inventory");DataTable inventory = new DataTable("Inventory");
inventory.Columns.Add("TitleID",typeof(Int32));inventory.Columns.Add("TitleID",typeof(Int32));
inventory.Columns.Add("Quantity",typeof(Int32));inventory.Columns.Add("Quantity",typeof(Int32));
// Add Inventory table to Pubs DataSet// Add Inventory table to Pubs DataSet
pubs.Tables.Add(inventory);pubs.Tables.Add(inventory);
// Add a record to the Inventory table// Add a record to the Inventory table
DataRow row = inventory.NewRow();DataRow row = inventory.NewRow();
row["TitleID"]=1;row["TitleID"]=1;
row["Quantity"]=25;row["Quantity"]=25;
inventory.Rows.Add(row);inventory.Rows.Add(row);
01.01.4545
Manejo de DataSets Manejo de DataSets El Objeto DataViewEl Objeto DataView
Permite establecer una ordenacion y un filtro Permite establecer una ordenacion y un filtro en una vista o tablaen una vista o tabla
Es una vista viva de un DataTableEs una vista viva de un DataTable Cualquier numero de DataViews pueden ser Cualquier numero de DataViews pueden ser
creados sobre un Tablecreados sobre un Table Habilita diferentes vistas de las misma Habilita diferentes vistas de las misma
tablatabla Puede ser usado para DatabindingPuede ser usado para Databinding
01.01.4646
Manejo de DataSets Manejo de DataSets DataSets fuertemente DefinidosDataSets fuertemente Definidos
Mapea Tables a propiedades del DataSetMapea Tables a propiedades del DataSet Clase automaticamente generada por el Clase automaticamente generada por el
DesignerDesigner Hereda del DataSetHereda del DataSet Esquema (Schema) codificado dentro de la Esquema (Schema) codificado dentro de la
claseclase Codigo conciso y leibleCodigo conciso y leible Chequeo de tipos en tiempo de compilacionChequeo de tipos en tiempo de compilacion
01.01.4747
Manejo de DataSets Manejo de DataSets DataSets fuertemente DefinidosDataSets fuertemente Definidos
DataSets, Tables, Rows son ObjectosDataSets, Tables, Rows son Objectos Columns, Relations son propiedadesColumns, Relations son propiedades
//print out each author and their titles//print out each author and their titles foreach (Author myAuthor in Pubs.Authors.Rows) foreach (Author myAuthor in Pubs.Authors.Rows) {{ Console.WriteLine("Name = " + Console.WriteLine("Name = " + myAuthor.au_lname);myAuthor.au_lname); foreach (Title myTitle in myAuthor.Titles)foreach (Title myTitle in myAuthor.Titles) {{
Console.WriteLine("Title = " + Console.WriteLine("Title = " + myAuthor.Title);myAuthor.Title); }} }}
01.01.4848
Manejo de DataSets Manejo de DataSets DataSets fuertemente DefinidosDataSets fuertemente Definidos
Sintaxis como esta (similar a codigo ADO):Sintaxis como esta (similar a codigo ADO):
Puede ser cambiada a sintaxix como esta:Puede ser cambiada a sintaxix como esta:
Ventajas – Más facil de leer, los errores de tipeo se Ventajas – Más facil de leer, los errores de tipeo se capturan en tiempo de compilacion envez que en tiempo capturan en tiempo de compilacion envez que en tiempo de ejecucionde ejecucion
Dim rowCustomer As System.Data.DataRowDim rowCustomer As System.Data.DataRow For Each rowCustomer In MyDataSet.Tables("Customers").RowsFor Each rowCustomer In MyDataSet.Tables("Customers").Rows Console.WriteLine(rowCustomer.Fields("CompanyName"))Console.WriteLine(rowCustomer.Fields("CompanyName"))NextNext
Dim rowCustomer As System.Data.DataRowDim rowCustomer As System.Data.DataRow For Each rowCustomer In MyDataSet.Customers.RowsFor Each rowCustomer In MyDataSet.Customers.Rows Console.WriteLine(rowCustomer.CompanyName)Console.WriteLine(rowCustomer.CompanyName)NextNext
01.01.4949
Manejo de DataSets Manejo de DataSets DatabindingsDatabindings
Fuentes para DataBindingFuentes para DataBinding DataReaderDataReader DataTableDataTable DataViewDataView DataSetDataSet DatSetViewDatSetView ArrayArray CollectionCollection IListIList
01.01.5050
Resumen Resumen
ADO.NET es una evolucion natural de ADOADO.NET es una evolucion natural de ADO Modelo Connection/Command comunModelo Connection/Command comun
ADO.NET esta diseñado para trabajar con ADO.NET esta diseñado para trabajar con XMLXML
ADO.NET esta ampliamente integrado con ADO.NET esta ampliamente integrado con el .NET Frameworkel .NET Framework Manejo de excepciones, nombres, Manejo de excepciones, nombres,
notificaciones, etc.notificaciones, etc. Integrado con otros componentes del.NET Integrado con otros componentes del.NET
FrameworkFramework