La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Clase 9 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

Presentaciones similares


Presentación del tema: "Clase 9 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182."— Transcripción de la presentación:

1 Clase 9 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182

2 La cadena de conexión La mejor seguridad, es la seguridad integrada La mejor seguridad, es la seguridad integrada  Disminuye la posibilidad de acceso no autorizado  Facilita el manejo de permisos de acceso  No requiere mayor mantenimiento del lado de la base  Un nuevo usuario sólo debe agregarse al dominio y al grupo adecuado en un solo punto administrativo

3 La cadena de Conexión (2) Cuando no podemos acceder a la seguridad del dominio, entonces usamos seguridad de SQL Server Cuando no podemos acceder a la seguridad del dominio, entonces usamos seguridad de SQL Server  Proveedores externos de sitios Requiere mayor cuidado en la configuración de la cadena de conexión Requiere mayor cuidado en la configuración de la cadena de conexión  Encriptación  Almacenamiento en ubicaciones no comunes

4 Agregando connection string al web.config <add name="northwind" connectionString="server=(local);database=Northwind;Integrated Security=SSPI" providerName="System.Data.SqlClient" />

5 Accediendo desde el código al web.config SqlConnection connection = new SqlConnection( ConfigurationManager.ConnectionStrings[ "ADVENTUREWORKSConnectionString"].ConnectionString); Acceso de lectura/escritura a especificaciones de configuración. Ejemplo en C#:

6 DataAdapter Obteniendo datos (CLR) Connection Command DataReader GetByte(n)GetString(n)GetInt32(n)… ConnectionCommand DataReader DataSet

7 Obteniendo Datos (SQL) Sentencias SQL Sentencias SQL  Excepto que sean muy similares con alguna anterior, requieren un análisis completo cada vez que se ejecutan  Si sólo varía el valor de los argumentos utilizados, SQL Server es capaz de mantener en caché las sentencias Procedimientos Almacenados Procedimientos Almacenados  Sólo consumen el tiempo de la obtención de datos  Permiten implementar mejores mecanismos de autorización de acceso

8 Actualizando datos (SQL) Actualizar Actualizar Insertar Insertar Eliminar Eliminar UPDATE Oradores SET Nombre = 'Nombre', Apellido = 'Apellido', EsInternacional = 1 where Id=3 INSERT INTO Oradores (Nombre, Apellido, EsInternacional) VALUES (N'Nombre', N'Apellido', 1) where Id=3 DELETE FROM Oradores WHERE (Id = 3)

9 Actualizando datos (SQL) (2) Procedimientos Almacenados Procedimientos Almacenados  Más rápidos  Más seguros CREATE/ALTER Procedure [Oradores_Update] @Id int = null, @Nombre nvarchar(100) = null, @Apellido nvarchar(100) = null, @EsInternacional bit = null, @EsRegional bit = null, @Descripcion varchar(8000) = null, @UrlFoto nvarchar(100) = null, @EsGenerico bit = null, @EsINETA bit = null, @Passport nvarchar(200) = null, @EsAcademico bit = nulll AS Update [Oradores] SET [Id]=@Id, [Nombre]=@Nombre, [Apellido]=@Apellido, [EsInternacional]=@EsInternacional, [EsRegional]=@EsRegional, [Descripcion]=@Descripcion, [UrlFoto]=@UrlFoto, [EsGenerico]=@EsGenerico, [EsINETA]=@EsINETA, [Passport]=@Passport, [EsAcademico]=@EsAcademico where Id=@Id

10 Utilizando procedimientos almacenados Ejecutar cualquier sentencia SQL significa Ejecutar cualquier sentencia SQL significa  Control de sintaxis  Control de validez de los objetos implicados  Compilación  Cálculo del plan de ejecución (Query Plan)  Ejecución y obtención de resultados Ejecutar cualquier procedimiento almacenado significa Ejecutar cualquier procedimiento almacenado significa  Ejecución y obtención de resultados  (el resto se realiza al guardar el PA en la base de datos)

11 Objeto Command Representa una Instrucción SQL o un procedimiento almacenado que ejecuta en un origen de datos Expone 4 métodos importantes para devolver datos:   ExecuteReader()   ExecuteScalar()   ExecuteNonQuery()   ExecuteXMLReader() Llamada a StoresProcedures utilizando Parameters Objeto Command especifico para cada proveedor:   SQLCommand   ODBCCommand   OLEDBCommand   OracleCommand ADO.NET 2.0

12 Objeto Command – Ejemplo 1 de SQLCommand ADO.NET 2.0

13 Objeto Command – Ejemplo 2 de SQLCommand ADO.NET 2.0

14 Objeto DataReader Forward-only / Read-only Acceso rápido a los datos Conectado al origen La conexión la maneja usted mismo Los datos se manejan por código o a través de controles enlazados Usa pocos recursos ADO.NET 2.0

15 Objeto DataReader – Ejemplo 1 ADO.NET 2.0

16 Objeto DataReader – Ejemplo 2 ADO.NET 2.0

17 Gestiona el intercambio de datos entre DataTables y un Data Source  .Fill (DataSet o DataTable)  .Update (DataSet o DataTable) Provee relaciones entre tablas y columnas El usuario puede saltarse los comandos Insert/Update/Delete Objeto DataAdapter ADO.NET 2.0

18 DataAdapterDataAdapter SelectCommand InsertCommand UpdateCommand DeleteCommand TableMappings DatabaseDatabase DataTableDataTable DataSetDataSet Objeto DataAdapter DataTableDataTable DataTableDataTable Origen de Datos Adaptador Conjunto de Resultados ADO.NET 2.0

19 Rellenar: DataAdapter.Fill(DataTable) Objeto DataAdapter - Ejemplo ADO.NET 2.0

20 Guardar Cambios: DataAdapter.Update(DataTable) Objeto DataAdapter - Ejemplo ADO.NET 2.0

21 DataBinding (Data Sources) Mecanismo de Enlaces entre Objetos contenedores de datos (DataSet, WebService, DataBase) y los Controles WinForms Operaciones automatizadas No requiere escribir código Permite Navegación, Edición de registros Múltiples Origenes de Datos:   DataSet   Web Service’s   DataBase Se Establece en tiempo de Diseño ADO.NET 2.0

22 Buenas Prácticas Las consultas deben ser específicas en cuanto a las columnas que deben devolver Las consultas deben ser específicas en cuanto a las columnas que deben devolver  Select * from tabla  Un error común: denominar los procedimientos almacenados comenzando con sp_ Un error común: denominar los procedimientos almacenados comenzando con sp_  Sp_ significa “system procedure” no “Store procedure”

23 Capa de acceso a datos Encapsular la funcionalidad en un componente común Encapsular la funcionalidad en un componente común  Reusable  No vinculado a una base o aplicación en particular Definir en el mismo las funcionalidades esenciales parametrizadas Definir en el mismo las funcionalidades esenciales parametrizadas  Esto conlleva consumir más recursos de conexión a la base  Implementar caché de acciones

24 PASOS A SEGUIR PARA METODOS DAO CON INSERT, UPDATE y DELETE: Crear objeto SqlConnection con la correspondiente connection string. Crear objeto SqlConnection con la correspondiente connection string. Abrir la conexión (connection.Open()). Abrir la conexión (connection.Open()). Crear e instanciar objeto SqlCommand. Crear e instanciar objeto SqlCommand. Setear el tipo de comando (CommandType) Setear el tipo de comando (CommandType) Setear el CommandText con la query a ejecutar o el nombre del stored procedure. Setear el CommandText con la query a ejecutar o el nombre del stored procedure. En caso de ser un stored procedure, crear SqlParameters necesarios y asignarle los valores. En caso de ser un stored procedure, crear SqlParameters necesarios y asignarle los valores. Ejecutar el método ExecuteNonQuery() del objeto command. Ejecutar el método ExecuteNonQuery() del objeto command. CERRAR LA CONEXIÓN: connection.Close() CERRAR LA CONEXIÓN: connection.Close()

25 PASOS A SEGUIR PARA METODOS DAO CON SELECT: Crear objeto SqlConnection con la correspondiente connection string. Crear objeto SqlConnection con la correspondiente connection string. Abrir la conexión (connection.Open()). Abrir la conexión (connection.Open()). Crear e instanciar objeto DataSet para almacenar los resultados. Crear e instanciar objeto DataSet para almacenar los resultados. Crear e instanciar objeto SqlCommand. Crear e instanciar objeto SqlCommand. Setear el tipo de comando (CommandType) Setear el tipo de comando (CommandType) Setear el CommandText con la query a ejecutar o el nombre del stored procedure. Setear el CommandText con la query a ejecutar o el nombre del stored procedure. En caso de ser un stored procedure, crear SqlParameters necesarios y asignarle los valores. En caso de ser un stored procedure, crear SqlParameters necesarios y asignarle los valores. Crear objeto SqlDataAdapter y pasarle en el constructor nuestro SqlCommand creado anteriormente. Crear objeto SqlDataAdapter y pasarle en el constructor nuestro SqlCommand creado anteriormente. Ejecutar el método Fill() del SqlDataAdapter, pasándole por parámetro nuestro DataSet donde se almacenaran los resultados. Ejecutar el método Fill() del SqlDataAdapter, pasándole por parámetro nuestro DataSet donde se almacenaran los resultados. CERRAR LA CONEXIÓN: connection.Close() CERRAR LA CONEXIÓN: connection.Close()

26 Demo Aplicando ADO.NET a nuestro proyecto


Descargar ppt "Clase 9 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182."

Presentaciones similares


Anuncios Google