Está en la página 1de 20

Programación Orientada a Objetos I

Unidad 5: Operaciones conectadas a un origen de datos


Tema 10 y 11: Manipulación de Datos
Índice

• Arquitectura de ADO.NET
• Proveedores de datos ADO.NET
• Manipulación de Datos
• CRUD sobre un origen de datos
• Clase Command
• Flujo de Objetos ADO.NET para Manipular datos en la BD
Capacidades

Al término de la unidad, el alumno crea una aplicación de escritorio aplicando la


metodología orientada a objetos para realizar operaciones de consulta y
actualización de datos.
Arquitectura de ADO.NET
PROVEEDORES DE DATOS
PROVEEDORES DE DATOS - CONECTADOS DATOS DESCONECTADOS

PROVEEDORES NATIVOS PROVEEDORES GENERALES REPOSITORIO DE DATOS

SQLClient OracleClient OLEDB ODBC Fill DATASET


DataRows
SQLConnection OracleConnection OleDBConnection ODBCConnection DataTables DataColumns
SQLDataAdapter OracleDataAdapter OleDBDataAdapter ODBCDataAdapter DataView
SQLCommand OracleCommand OleDBCommand ODBCCommand
SQLDataReader OracleDataReader OleDBDataReader ODBCDataReader DataRelations

Update
ACCESS MySQL
SQL SERVER ORACLE PostgreSQL
EXCEL
INFORMIX
DBF
MANIPULACIÓN DE DATOS
La función principal de una aplicación que trabaje con un origen de datos es
conectarse a dicha fuente de datos para realizar operaciones de consulta y
actualización de los datos que se almacenan.

Los proveedores de .NET Framework para ADO.NET son utilizados por las
aplicaciones para trabajar con un determinado origen de datos, permitiendo
ejecutar instrucciones SQL para actualizar los datos a través de la clase Command.
Operaciones CRUD sobre un origen de datos
Las instrucciones que permite modificar o actualizar datos en un origen de datos son:
• INSERT, UPDATE y DELETE.

La instrucción que permite consultar datos de un origen de datos es:


• SELECT
MANIPULACIÓN DE DATOS - CLASE COMMAND

SQLClient • Define un comando que representa una


sentencia SQL nativo o un procedimiento
SQLConnection almacenado para que se ejecute la base de
SQLDataAdapter
datos.
SQLCommand • Ejecuta instrucciones SQL en la base de
SQLDataReader
datos con los siguientes métodos:
Método Devolver Valor
SQL SERVER
ExecuteReader Devuelve un objeto DataReader
ExecuteScalar Devuelve un solo valor escalar
ExecuteNonQuery Ejecuta un comando sql.
Devuelve la cantidad de filas
afectadas.
MANIPULACIÓN DE DATOS - CLASE COMMAND

SQLClient
• Cada objeto Command admite también una
enumeración CommandType que especifica
SQLConnection como se interpreta una cadena de comando
SQLDataAdapter
SQLCommand CommandType Descripción
SQLDataReader Text Comando de SQL que defina las
instrucciones que se van a ejecutan en el
origen de datos
StoredProcedure Nombre del Procedimiento Almacenado.
SQL SERVER
Puede usar la propiedad Parameters de un
comando para tener acceso a los
parámetros de entrada, de salida y a los
valores devueltos, independiente del
método Execute.
MANIPULACIÓN DE DATOS - CLASE COMMAND

SQLClient
• Command permiten pasar parámetros a las
instrucciones SQL o procedimientos
SQLConnection almacenados.
SQLDataAdapter
• El método AddWithValue permite agregar
SQLCommand un parámetro con su respectivo valor a la
SQLDataReader
instrucción o procedure desde el código C#.

SQL SERVER
Para recordar
• El objeto Command permite ejecutar sentencias en la base de datos desde
nuestra aplicación y a través de una conexión SqlConnection.

• El método ExecuteNonQuery, ejecuta la sentencia hacia el origen de datos,


retornando la cantidad de registros afectados.

• Para agregar valores a los parámetros de tu sentencia SQL o procedure se


utiliza la colección Parameters.

• La colección Parameters, utiliza el método AddWithValue() para agregar


valores a sus parámetros.
Flujo de Objetos ADO.NET para Manipular datos en la BD

Proveedor de datos ADO.NET – Datos con CONEXIÓN Datos sin CONEXIÓN


FILL→ Objeto
Objeto DataAdapter DataSet
UPDATE (DataTables)

Objeto
Connection INSERT
UPDATE CRUD
BASE DE DELETE
Objeto (PROCEDURE)
DATOS Command

READ →
Objeto
DataReader
Manejo de Transacciones
• Permiten la actualización o modificación eficiente de los datos ya
sea de forma local o remota.
• Garantizan que los recursos orientados a datos se completen de forma
satisfactoria.

Sentencia SQL

Transacción

Base Datos
Aplicación
Transacciones
• Una transacción es un conjunto de operaciones Transact SQL que se
ejecutan como un único bloque.
Tipos de Transacciones
Existen dos modelos de transacciones:
• Transacciones Explicitas: Proporciona el espacio de nombres
System.Transactions para crear una transacción
• Transacciones Implícitas: Utiliza la clase Transaction en el que la
infraestructura administra de forma automática las transacciones por
medio de la clase TransactionScope.
Tipos de Transacciones
Por ejemplo:

Pensemos que tenemos dos INSERT, el primero se ejecuta de forma exitosa, y el


segundo nos da error.
Si trabajamos con Transacciones Implícitas, veremos como el primer cambio se
mantiene porque cada INSERT se incluye automáticamente en su propia
transacción.
En cambio con Transacciones Explícitas se puede tener el control del conjunto de
operaciones ante un error.
Transacciones explícitas, es el modo de trabajo recomendado
cuando se trabaja con 2 o más tablas
Transacciones Explicitas

• Utiliza la Clase Transaction


• Ejecuta los métodos Commit y RollBack para confirmar o anular la
transacción.
• Al implementar la transacción, se debe llamar al método BeginTransaction
• Tiene niveles de aislamiento por un valor enumerable de
System.Data.IsolationLevel dentro del método BeginTransaction
Transacciones Explicitas-Nivel de Aislamiento

Método Descripción
Se pueden leer datos variables y modificarse durante
ReadUncommitted
la transacción.
Se pueden leer datos variables pero no modificarse y
Serializable no se pueden agregar nuevos datos durante la
transacción.
Para recordar
• Un Transaction permite la actualización eficiente de los datos en forma local
o remota.

• Una Transacción Explícita ejecuta las sentencias SQL a través de los métodos
Commit y RollBack

• Al implementar la transacción, se debe llamar al método BeginTransaction

• Tiene niveles de aislamiento por un valor enumerable de


System.Data.IsolationLevel dentro del método BeginTransaction

También podría gustarte