almacenamiento y obtenciÓn de datos con ado.net. acceder a datos con ado.net tres niveles: tres...

23
ALMACENAMIENTO Y ALMACENAMIENTO Y OBTENCIÓN DE DATOS OBTENCIÓN DE DATOS CON ADO.NET CON ADO.NET

Upload: pascuala-trinidad

Post on 13-Feb-2015

16 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: ALMACENAMIENTO Y OBTENCIÓN DE DATOS CON ADO.NET. ACCEDER A DATOS CON ADO.NET Tres niveles: Tres niveles: El almacenamiento físico de datos. Puede ser

ALMACENAMIENTO Y ALMACENAMIENTO Y OBTENCIÓN DE DATOS OBTENCIÓN DE DATOS

CON ADO.NETCON ADO.NET

Page 2: ALMACENAMIENTO Y OBTENCIÓN DE DATOS CON ADO.NET. ACCEDER A DATOS CON ADO.NET Tres niveles: Tres niveles: El almacenamiento físico de datos. Puede ser

ACCEDER A DATOS CON ACCEDER A DATOS CON ADO.NETADO.NET

Tres niveles:Tres niveles:• El almacenamiento físico de datos. Puede ser El almacenamiento físico de datos. Puede ser

una base de datos OLE, SQL o un archivo XML.una base de datos OLE, SQL o un archivo XML.• El proveedor de datos. Consiste de objetos El proveedor de datos. Consiste de objetos

Connection y objetos comando para crear una Connection y objetos comando para crear una representación de los datos en memoria.representación de los datos en memoria.

• El conjunto de datos. Una representación en El conjunto de datos. Una representación en memoria de los datos y sus relaciones con los memoria de los datos y sus relaciones con los cuales se trabajan en la aplicación.cuales se trabajan en la aplicación.

Existen dos tipos de conexiones a base de Existen dos tipos de conexiones a base de datos en ADO.NET:datos en ADO.NET:• OleDbConnectionOleDbConnection• SqlDbConnectionSqlDbConnection

Page 3: ALMACENAMIENTO Y OBTENCIÓN DE DATOS CON ADO.NET. ACCEDER A DATOS CON ADO.NET Tres niveles: Tres niveles: El almacenamiento físico de datos. Puede ser

Conectarse a una Base de DatosConectarse a una Base de Datos

1.1. Del menú View, Del menú View, escoja Server escoja Server Explorer. Explorer.

2.2. En el Server En el Server Explorer, escoja la Explorer, escoja la opción Connect To opción Connect To Database. Se Database. Se despliega el cuadro despliega el cuadro de diálogo DataLink de diálogo DataLink Properties.Properties.

3.3. Seleccione el tipo de Seleccione el tipo de proveedor.proveedor.

Page 4: ALMACENAMIENTO Y OBTENCIÓN DE DATOS CON ADO.NET. ACCEDER A DATOS CON ADO.NET Tres niveles: Tres niveles: El almacenamiento físico de datos. Puede ser

Conectarse a una Base de DatosConectarse a una Base de Datos

1.1. En el Tab Connection En el Tab Connection especifique la base especifique la base de datos a la cual de datos a la cual conectarse. conectarse.

2.2. Asegúrese de que la Asegúrese de que la conexión quedó bien conexión quedó bien hecha con Test hecha con Test Connection. Presione Connection. Presione OK.OK.

Page 5: ALMACENAMIENTO Y OBTENCIÓN DE DATOS CON ADO.NET. ACCEDER A DATOS CON ADO.NET Tres niveles: Tres niveles: El almacenamiento físico de datos. Puede ser

Crear un Data SetCrear un Data Set

Click derecho en Click derecho en el objeto el objeto Adaptador y Adaptador y seleccionar seleccionar Generate DataSetGenerate DataSet

Seleccionar las Seleccionar las tablas que se tablas que se quieran añadirquieran añadir

Page 6: ALMACENAMIENTO Y OBTENCIÓN DE DATOS CON ADO.NET. ACCEDER A DATOS CON ADO.NET Tres niveles: Tres niveles: El almacenamiento físico de datos. Puede ser

Para desplegar un Data SetPara desplegar un Data Set Añada un control al formulario Web para mostrar el Data Set, Añada un control al formulario Web para mostrar el Data Set,

por ejemplo un DataGrid.por ejemplo un DataGrid. Establezca la propiedad del data source al control. Para el Establezca la propiedad del data source al control. Para el

DataGrid ponga en la propiedad DataSource el objeto DataSet DataGrid ponga en la propiedad DataSource el objeto DataSet creado y en DataMember la tabla que desee del DataSet.creado y en DataMember la tabla que desee del DataSet.

Escoja las columnas a mostrar.Escoja las columnas a mostrar. Añada código al procedimiento Page_Load para llenar el data Añada código al procedimiento Page_Load para llenar el data

set y ligar el DataSet al objeto control.set y ligar el DataSet al objeto control.

private void Page_Load(object sender, System.EventArgs e)private void Page_Load(object sender, System.EventArgs e)      {{                  // Fill the data set.// Fill the data set.                  sqlDataAdapter1.Fill(DataSet1);sqlDataAdapter1.Fill(DataSet1);                  // Update the DataGrid.// Update the DataGrid.                  DataGrid1.DataBind();DataGrid1.DataBind();      }}

Page 7: ALMACENAMIENTO Y OBTENCIÓN DE DATOS CON ADO.NET. ACCEDER A DATOS CON ADO.NET Tres niveles: Tres niveles: El almacenamiento físico de datos. Puede ser

Cómo ADO se refiere a los Cómo ADO se refiere a los objetosobjetos

Cuando se crean los objetos connection, Cuando se crean los objetos connection, adapter y dataset en tiempo de diseño, se adapter y dataset en tiempo de diseño, se habilita la opción de habilita la opción de typingtyping. . Ejemplo:Ejemplo:

Page 8: ALMACENAMIENTO Y OBTENCIÓN DE DATOS CON ADO.NET. ACCEDER A DATOS CON ADO.NET Tres niveles: Tres niveles: El almacenamiento físico de datos. Puede ser

Añadir una filaAñadir una fila

Utilice la colección Rows del DataSet. Utilice la colección Rows del DataSet. Para añadir una fila, cree un objeto Para añadir una fila, cree un objeto

Row y añadirla a la colección Rows.Row y añadirla a la colección Rows.

Page 9: ALMACENAMIENTO Y OBTENCIÓN DE DATOS CON ADO.NET. ACCEDER A DATOS CON ADO.NET Tres niveles: Tres niveles: El almacenamiento físico de datos. Puede ser

Modificar y Borrar una filaModificar y Borrar una fila

Page 10: ALMACENAMIENTO Y OBTENCIÓN DE DATOS CON ADO.NET. ACCEDER A DATOS CON ADO.NET Tres niveles: Tres niveles: El almacenamiento físico de datos. Puede ser

Crear una conexión en tiempo de Crear una conexión en tiempo de ejecuciónejecución

Page 11: ALMACENAMIENTO Y OBTENCIÓN DE DATOS CON ADO.NET. ACCEDER A DATOS CON ADO.NET Tres niveles: Tres niveles: El almacenamiento físico de datos. Puede ser

USO DE DATA SETS EN USO DE DATA SETS EN FORMULARIOS WEBFORMULARIOS WEB

Desplegar un Data Set Desplegar un Data Set en un DataGriden un DataGrid• Cree una conexión a Cree una conexión a

una base de datos, un una base de datos, un adaptador y un data adaptador y un data setset

• Añada un control Añada un control DataGrid al formulario DataGrid al formulario WebWeb

• Establezca la Establezca la propiedad DataSource propiedad DataSource del DataGrid al data del DataGrid al data setset

• Añada código al Añada código al evento Page_Load para evento Page_Load para llenar el data set llenar el data set desde el adaptador y desde el adaptador y ligarlo al DataGridligarlo al DataGrid

Page 12: ALMACENAMIENTO Y OBTENCIÓN DE DATOS CON ADO.NET. ACCEDER A DATOS CON ADO.NET Tres niveles: Tres niveles: El almacenamiento físico de datos. Puede ser

Desplegar un Data Set en un Desplegar un Data Set en un DataListDataList

1.1. Cree una conexión a una base de datos, Cree una conexión a una base de datos, un adaptador y un data setun adaptador y un data set

2.2. Añada un control DataList al formulario Añada un control DataList al formulario WebWeb

3.3. Establezca la propiedad DataSource del Establezca la propiedad DataSource del DataList al data setDataList al data set

4.4. Añada código al evento Page_Load para Añada código al evento Page_Load para llenar el data set desde el adaptador y llenar el data set desde el adaptador y ligarlo al DataListligarlo al DataList

5.5. Edite las plantillas del encabezado, item Edite las plantillas del encabezado, item y separador del control DataList para y separador del control DataList para crear la apariencia del DataListcrear la apariencia del DataList

Page 13: ALMACENAMIENTO Y OBTENCIÓN DE DATOS CON ADO.NET. ACCEDER A DATOS CON ADO.NET Tres niveles: Tres niveles: El almacenamiento físico de datos. Puede ser

Desplegar datos en otros Desplegar datos en otros controles de listascontroles de listas

Para desplegar ítems de un conjunto de Para desplegar ítems de un conjunto de datos en un ListBox, DropDownList, datos en un ListBox, DropDownList, CheckBoxList o RadioButtonList, haga:CheckBoxList o RadioButtonList, haga:• Establezca la propiedad DataSource del control Establezca la propiedad DataSource del control

al data setal data set• Establezca la propiedad DataText al miembro Establezca la propiedad DataText al miembro

del data set para desplegar como la propiedad del data set para desplegar como la propiedad Text del ítem de la listaText del ítem de la lista

• Establezca la propiedad DataValue del miembro Establezca la propiedad DataValue del miembro del data set para retornar la propiedad Value del data set para retornar la propiedad Value del ítem de la listadel ítem de la lista

• En código, llene el data set y únalo al control En código, llene el data set y únalo al control

Page 14: ALMACENAMIENTO Y OBTENCIÓN DE DATOS CON ADO.NET. ACCEDER A DATOS CON ADO.NET Tres niveles: Tres niveles: El almacenamiento físico de datos. Puede ser

Ejecución de comandos en una Ejecución de comandos en una base de datosbase de datos

Provee tres métodos para ejecutar Provee tres métodos para ejecutar comandoscomandos• ExecuteScalarExecuteScalar. Realiza comandos que retornan . Realiza comandos que retornan

un valor, tales como la cantidad de registros en un valor, tales como la cantidad de registros en una tabla. una tabla.

• ExecuteNonQueryExecuteNonQuery. Realiza comandos que . Realiza comandos que cambian la base de datos pero no retornan cambian la base de datos pero no retornan nada. Esto incluye añadir y borrar datos de una nada. Esto incluye añadir y borrar datos de una base de datos.base de datos.

• ExecuteReaderExecuteReader. Lee registros de manera . Lee registros de manera secuencial de una base de datos.secuencial de una base de datos.

Page 15: ALMACENAMIENTO Y OBTENCIÓN DE DATOS CON ADO.NET. ACCEDER A DATOS CON ADO.NET Tres niveles: Tres niveles: El almacenamiento físico de datos. Puede ser

PROCESAMIENTO DE PROCESAMIENTO DE TRANSACCIONESTRANSACCIONES

Una transacción es un grupo de comandos Una transacción es un grupo de comandos de la base de datos que se tratan como de la base de datos que se tratan como una sola unidad. Los comandos una sola unidad. Los comandos pertenecen a una transacción si son:pertenecen a una transacción si son:• AtómicosAtómicos. Realizan una única unidad de trabajo. Realizan una única unidad de trabajo• ConsistentesConsistentes. Todas las relaciones entre los . Todas las relaciones entre los

datos de la base de datos se mantienen datos de la base de datos se mantienen correctamentecorrectamente

• AisladosAislados. Los cambos hechos por otros clientes . Los cambos hechos por otros clientes no afectan los cambios actuales.no afectan los cambios actuales.

• DurablesDurables. Una vez se realiza un cambio, es . Una vez se realiza un cambio, es permanente. permanente.

Page 16: ALMACENAMIENTO Y OBTENCIÓN DE DATOS CON ADO.NET. ACCEDER A DATOS CON ADO.NET Tres niveles: Tres niveles: El almacenamiento físico de datos. Puede ser

Comprender las transaccionesComprender las transacciones

En una aplicación Web las transacciones son En una aplicación Web las transacciones son importantes, puesto que las bases de datos son importantes, puesto que las bases de datos son un recurso compartido entre muchos clientes. Se un recurso compartido entre muchos clientes. Se puede presentar los siguientes problemas:puede presentar los siguientes problemas:• Contención por recursosContención por recursos. Varios clientes pueden intentar . Varios clientes pueden intentar

cambiar el mismo registro al mismo tiempocambiar el mismo registro al mismo tiempo• Fallos inesperadosFallos inesperados. El Internet no es la red más . El Internet no es la red más

confiable. Los clientes pueden desconectarse confiable. Los clientes pueden desconectarse inesperadamenteinesperadamente

• Ciclo de vida de la aplicaciónCiclo de vida de la aplicación. Los formularios Web viven . Los formularios Web viven solo por un instante, un cliente puede dejar la aplicación solo por un instante, un cliente puede dejar la aplicación en cualquier momento con solo escribir una nueva en cualquier momento con solo escribir una nueva dirección en su browserdirección en su browser

Page 17: ALMACENAMIENTO Y OBTENCIÓN DE DATOS CON ADO.NET. ACCEDER A DATOS CON ADO.NET Tres niveles: Tres niveles: El almacenamiento físico de datos. Puede ser

Manera de tratar una transacciónManera de tratar una transacción

Los Data sets hacen el procesamiento de una transacción a Los Data sets hacen el procesamiento de una transacción a través de los métodos RejectChanges y Updatetravés de los métodos RejectChanges y Update. Los data sets . Los data sets también proveen el método AcceptChanges que restaura el también proveen el método AcceptChanges que restaura el estado de los registros en un data set a no cambiados.estado de los registros en un data set a no cambiados.

Los objetos de conexión a la base de datos proveen el Los objetos de conexión a la base de datos proveen el procesamiento de transacciones a través del objeto procesamiento de transacciones a través del objeto transactiontransaction. El objeto transaction vigila los comandos . El objeto transaction vigila los comandos realizados y provee los métodos Rollback, Commit y Save realizados y provee los métodos Rollback, Commit y Save para restaura la base de datos, realizar los cambios o crear para restaura la base de datos, realizar los cambios o crear un punto de guarda dentro de una transacción.un punto de guarda dentro de una transacción.

El namespace System.EnterpriseServices provee El namespace System.EnterpriseServices provee transacciones de nivel de empresa a través de la clase transacciones de nivel de empresa a través de la clase ContexUtilContexUtil. Las transacciones de nivel de la empresa usan el . Las transacciones de nivel de la empresa usan el Microsoft Distributed Transaction Coordinator (DTC) que Microsoft Distributed Transaction Coordinator (DTC) que viene con el Microsoft SQL Server 200 para seguir las viene con el Microsoft SQL Server 200 para seguir las transacciones a través de varios formularios Web y a través transacciones a través de varios formularios Web y a través de varios componentes COM+de varios componentes COM+

Page 18: ALMACENAMIENTO Y OBTENCIÓN DE DATOS CON ADO.NET. ACCEDER A DATOS CON ADO.NET Tres niveles: Tres niveles: El almacenamiento físico de datos. Puede ser

Transacciones Data SetTransacciones Data Set

Los data sets proveen un Los data sets proveen un procesamiento de transacciones procesamiento de transacciones implícito. Los cambios en la base de implícito. Los cambios en la base de datos no se realizan hasta que se datos no se realizan hasta que se invoque el método invoque el método UpdateUpdate del del adaptador. adaptador.

Page 19: ALMACENAMIENTO Y OBTENCIÓN DE DATOS CON ADO.NET. ACCEDER A DATOS CON ADO.NET Tres niveles: Tres niveles: El almacenamiento físico de datos. Puede ser

Transacciones Data SetTransacciones Data Set

Page 20: ALMACENAMIENTO Y OBTENCIÓN DE DATOS CON ADO.NET. ACCEDER A DATOS CON ADO.NET Tres niveles: Tres niveles: El almacenamiento físico de datos. Puede ser

Transacciones Data SetTransacciones Data Set

Page 21: ALMACENAMIENTO Y OBTENCIÓN DE DATOS CON ADO.NET. ACCEDER A DATOS CON ADO.NET Tres niveles: Tres niveles: El almacenamiento físico de datos. Puede ser

Transacciones de base de datosTransacciones de base de datos

1.1. Abra una conexión a la base de datosAbra una conexión a la base de datos2.2. Cree el objeto transaction usando el método Cree el objeto transaction usando el método

BeginTransactionBeginTransaction del objeto connection. del objeto connection.3.3. Cree objetos comandos a ser rastreados dentro Cree objetos comandos a ser rastreados dentro

de esta transacción, asignado la propiedad de esta transacción, asignado la propiedad TransactionTransaction a cada comando con el nombre de a cada comando con el nombre de la transacción creada en el paso 2la transacción creada en el paso 2

4.4. Ejecute los comandosEjecute los comandos5.5. Realice los cambios a la base de datos o Realice los cambios a la base de datos o

restaure el estado de la base de datos, restaure el estado de la base de datos, dependiendo del éxito de los comandosdependiendo del éxito de los comandos

6.6. Cierre la conexiónCierre la conexión

Page 22: ALMACENAMIENTO Y OBTENCIÓN DE DATOS CON ADO.NET. ACCEDER A DATOS CON ADO.NET Tres niveles: Tres niveles: El almacenamiento físico de datos. Puede ser

Transacciones de base de datosTransacciones de base de datos

El objeto Transaction determina cómo los cambios El objeto Transaction determina cómo los cambios concurrentes se están manejando a través de la propiedad concurrentes se están manejando a través de la propiedad IsolationLevel.IsolationLevel.

Page 23: ALMACENAMIENTO Y OBTENCIÓN DE DATOS CON ADO.NET. ACCEDER A DATOS CON ADO.NET Tres niveles: Tres niveles: El almacenamiento físico de datos. Puede ser

Transacciones de nivel de la Transacciones de nivel de la empresaempresa

Para usar el DTC en un formulario Web haga:Para usar el DTC en un formulario Web haga:1.1. Cree una nueva transacción o continúe con una existente Cree una nueva transacción o continúe con una existente

estableciendo el atributo transaction del documentoestableciendo el atributo transaction del documento2.2. <%@ Page Language="vb" AutoEventWireup="false"<%@ Page Language="vb" AutoEventWireup="false"3.3. Codebehind="PageTransactions.aspx.vb" Codebehind="PageTransactions.aspx.vb" 4.4. Inherits="vbTransactionSnippet.PageTransactions" Inherits="vbTransactionSnippet.PageTransactions"

Transaction="RequiresNew"%>Transaction="RequiresNew"%>5.5. Añada una referencia al namespace Añada una referencia al namespace

SystemSystem..EnterpriseServicesEnterpriseServices6.6. Use los métodos Use los métodos SetAbortSetAbort y y SetCompleteSetComplete de la clase de la clase

ContextUtilContextUtil para cambiar el estatus de la transacción como para cambiar el estatus de la transacción como se deseese desee

7.7. Use los eventos Use los eventos CommitTransactionCommitTransaction y y AbortTransactionAbortTransaction de de la clase Page para responder a los cambios en el estado de la clase Page para responder a los cambios en el estado de la transacciónla transacción