Escolar Documentos
Profissional Documentos
Cultura Documentos
Contenido
Acceso a datos en C# .NET con ADO.NET Aplicativo Maestro detalle Informes e impresin en aplicaciones Windows Forms Distribucin de las aplicaciones
Espacios de nombres
System.Data System.Data.Common System.Data.SqlClient System.Data.OleDb Microsoft.SqlServer.Server
Arquitectura
Objetos Comunes
Base de datos
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
System.Data
Fundamento de la infraestructura de acceso a datos
Contiene clases de definicin base de los objetos de datos
DataColumn DataType DataRow DataTable DataSet
System.Data.Common
Clases base que determinan la funcionalidad de otras clases en los espacios de nombres especficos
DbDataAdapter DbCommand DbConnection DbDataReader
System.Data.SqlClient
Especfica para acceder a bases de datos SQL Server
Optimizada en su comunicacin con dicha base Implementa formas especficas de los mismos objetos existentes en Common por herencia SqlDataAdapter SqlCommand SqlConnection
System.Data.OleDb
Utiliza los proveedores OleDb para acceder a cualquier base de datos compatible, heredando de Common
OleDbDataAdapter OleDbCommand OleDbConnection
Obteniendo datos
DataAdapter Connection Command DataReader
DataSet
DataTable
10
Proveedores de datos
Objetos de Proveedores de Datos .NET Connection Propsito Objeto SQL Server Objeto para un origen OLEDB
Provee conectividad a un Origen de Datos Provee acceso a comandos de Base de Datos como Select, Delete, Insert y Update Provee acceso a datos de solo lectura Utiliza el objeto Connection para enlazar un objeto DataSet con un Proveedor de Datos. Tambin permite actualizar los Datos en el origen a partir de las modificaciones hechas en el DataSet.
SqlConnection
OleDBConnection
Command
SqlCommand
OleDBCommand
DataReader
SqlDataReader
OleDBDataReader
DataAdapter
SqlDataAdapter
OleDBDataAdapter
11
Actualizando datos
Connection Command ExecuteNonQuery
Update
12
SQL
Actualizar
UPDATE Oradores SET Nombre = 'Nombre', Apellido = 'Apellido', EsInternacional = 1 where Id=3
Insertar
INSERT INTO Oradores (Nombre, Apellido, EsInternacional) VALUES (N'Nombre', N'Apellido', 1) where Id=3
Eliminar
13
Qu es un entorno conectado?
Un entorno conectado es aquel en que los usuarios estn conectados continuamente a una fuente de datos Ventajas:
El entorno es ms fcil de mantener La concurrencia se controla ms fcilmente Es ms probable que los datos estn ms actualizados que en otros escenarios
Inconvenientes:
Debe existir una conexin de red constante Escalabilidad limitada
14
Qu es un entorno desconectado?
Un entorno desconectado es aquel en el que los datos pueden modificarse de forma independiente y los cambios se escriben posteriormente en la base de datos Ventajas:
Las conexiones se utilizan durante el menor tiempo posible, permitiendo que menos conexiones den servicio a ms usuarios Un entorno desconectado mejora la escalabilidad y el rendimiento de las aplicaciones Los datos no siempre estn actualizados Pueden producirse conflictos de cambios que deben solucionarse
Inconvenientes:
15
Conexin
SqlConnection SqlConn = new SqlConnection("server=localhost;uid=sa;pwd=;database=PUBS"); SqlConn.Open(); Using System.Data.OleDb; OleDbConnection OledbConn = new OleDbConnection("Provider=SQLOLEDB;Data Source=localhost;UID=sa;PWD=;Initial Catalog=pubs"); OledbConn.Open(); Using System.Data.Odbc; OdbcConnection OdbcConn = new OdbcConnection("DSN=Pubs;UID=sa;PWD=;"); OdbcConn.Open();
16
Objetos command
El objeto Command tiene varios mtodos Execute para ejecutar comandos a un origen de datos:
17
SqlClient
Using System.Data.SqlClient; SqlConnection SqlConn = new SqlConnection("server=localhost;uid=sa;pwd=;database=PUBS"); SqlCommand SqlCom = new SqlCommand("insert into jobs(job_desc, min_lvl, max_lvl) values('Webmaster', '25', '100')", SqlConn); SqlConn.Open(); SqlCom.ExecuteNonQuery (); SqlConn.Close();
18
OleDb y Odbc
Using System.Data.OleDb; OleDbConnection OledbConn = new OleDbConnection ("server=localhost;uid=sa;pwd=;database=PUBS"); OleDbCommand OledbCom = new OleDbCommand ("insert into jobs(job_desc, min_lvl, max_lvl) values('Webmaster', '25', '100')", OledbConn); OledbConn.Open(); OledbCom.ExecuteNonQuery (); OledbConn.Close();
19
SqlCommand/ parmetros
Crear SQL con parmetros Declarar los parmetros
SqlCommand cmd = new SqlCommand( "select * from Customers where city = @City", conn);
20
21
Mediante dataSourse
22
BindingSource (Clase)
Encapsula el origen de datos de un formulario. Espacio de nombres: System.Windows.Forms
BindingNavigator (Clase)
Representa la interfaz de usuario de exploracin y manipulacin para los controles de un formulario que estn enlazados a datos
23
24
BindingNavigator/BindingSourse
Se enlazan mediante la propiedad BindingSourse
25
Cdigo necesario
Cadena de conexin
string connectString = "Integrated Security=SSPI;Persist Security Info=False;" + "Initial Catalog=Northwind;Data Source=localhost"; SqlConnection connection = new SqlConnection(); connection.ConnectionString = connectString; connection.Open(); public SqlConnection conn = null; conn = new SqlConnection("Integrated Security=SSPI;Persist Security Info=False;" + "Initial Catalog=Northwind;Data Source=localhost"); conn.Open();
26
Cdigo necesario
SqlCommand
SqlCommand command = new SqlCommand( "Select * From Customers", connection);
27
Cdigo necesario
SqlDataReader
Proporciona una forma de leer una secuencia de filas slo hacia delante en una base de datos de SQL Server. Para crear un SQLDataReader se utiliza el mtodo ExecuteReader del SQLCommand.
SqlDataReader reader = command.ExecuteReader( CommandBehavior.CloseConnection);
28
DataSet
El DataSet guarda la informacin en uno o ms objetos de tipo DataTables. Cada DataTable puede ser poblada con datos de un nico origen.
DataSet ds = new DataSet("Northwind Customers"); ds.Load( reader, LoadOption.OverwriteChanges, new string[] { "Customers" });
Cargamos en la tabla la lectura del DataReader LoadOption:Controla cmo los valores del origen de datos se aplicarn a las filas existentes al utilizar los mtodos Load OverwriteChanges :Los valores de entrada de esta fila se escribirn en las versiones de valores actuales y valores originales de los datos de cada columna. PreserveChanges :Los valores de entrada de esta fila se escribirn en la versin de valores originales de cada columna. La versin actual de los datos de cada columna no se modificar. Upsert :Los valores de entrada de esta fila se escribirn en la versin actual de cada columna. La versin original de los datos de cada columna no se modificar
29
StoredProcedure
SqlCommand se puede utilizar para ejecutar procedimientos almacenados. // 1. crea el command SqlCommand cmd = new SqlCommand("Ten Most Expensive Products",
conn); // 2. define el tipo command // ejecuta el storedprocedure cmd.CommandType = CommandType.StoredProcedure;
30
Con parmetros
SqlCommand cmd = new SqlCommand("CustOrderHist", conn); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add(new SqlParameter("@CustomerID", custId));
31
Se puede utilizar cualquier cantidad de objetos DataAdapter con un DataSet. Cada DataAdapter se puede utilizar para llenar uno o varios objetos DataTable y para reflejar en el origen de datos correspondiente las actualizaciones que sean necesarias. Se pueden agregar de forma local objetos DataRelation y Constraint al DataSet, de manera que se pueden relacionar datos procedentes de varios orgenes distintos.
32
33