1 / 26

Clase 9

Clase 9. Curso Microsoft .NET I.S.F.T. N° 182. La cadena de conexión. 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

ronli
Download Presentation

Clase 9

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. La cadena de conexión • 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 • Proveedores externos de sitios • Requiere mayor cuidado en la configuración de la cadena de conexión • Encriptación • Almacenamiento en ubicaciones no comunes

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

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

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

  7. Obteniendo Datos (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 • 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 • Insertar • 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 • 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 • 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 • Ejecución y obtención de resultados • (el resto se realiza al guardar el PA en la base de datos)

  11. ADO.NET 2.0 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. ADO.NET 2.0 Objeto Command – Ejemplo 1 de SQLCommand ADO.NET 2.0

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

  14. ADO.NET 2.0 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. ADO.NET 2.0 Objeto DataReader – Ejemplo 1 ADO.NET 2.0

  16. ADO.NET 2.0 Objeto DataReader – Ejemplo 2 ADO.NET 2.0

  17. ADO.NET 2.0 Objeto DataAdapter • 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 ADO.NET 2.0

  18. DataAdapter SelectCommand InsertCommand UpdateCommand DeleteCommand TableMappings ADO.NET 2.0 Objeto DataAdapter Conjunto de Resultados Origen de Datos Adaptador DataSet Database DataTable DataTable DataTable ADO.NET 2.0

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

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

  21. ADO.NET 2.0 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 • Select * from tabla  • 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 • Reusable • No vinculado a una base o aplicación en particular • 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 connectionstring. • Abrir la conexión (connection.Open()). • Crear e instanciar objeto SqlCommand. • Setear el tipo de comando (CommandType) • Setear el CommandText con la query a ejecutar o el nombre del storedprocedure. • En caso de ser un storedprocedure, crear SqlParameters necesarios y asignarle los valores. • Ejecutar el método ExecuteNonQuery() del objeto command. • CERRAR LA CONEXIÓN: connection.Close()

  25. PASOS A SEGUIR PARA METODOS DAO CON SELECT: • Crear objeto SqlConnection con la correspondiente connectionstring. • Abrir la conexión (connection.Open()). • Crear e instanciar objeto DataSet para almacenar los resultados. • Crear e instanciar objeto SqlCommand. • Setear el tipo de comando (CommandType) • Setear el CommandText con la query a ejecutar o el nombre del storedprocedure. • En caso de ser un storedprocedure, crear SqlParameters necesarios y asignarle los valores. • 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. • CERRAR LA CONEXIÓN: connection.Close()

  26. Demo Aplicando ADO.NET a nuestro proyecto

More Related