..
En la lección anterior vimos cómo enlazar una colección de estática (también conocido como de la memoria) a varios controles de servidor. Aunque este tipo de operación puede ser útil en ciertos contextos, sin embargo, a menudo surge la necesidad de enlazar los controles a las diferentes colecciones de artículos de otras fuentes, a menudo a partir de una base de datos.
Además de incluir las bibliotecas de clases para el desarrollo de aplicaciones de escritorio (Windows Forms) y la gestión de las peticiones HTTP (ASP.NET),. NET Framework también incluye una biblioteca que soporta la conexión de una amplia variedad de bases de datos y se llamada ADO.NET (objetos de datos activa. NET). Esta tecnología se basa en tres funciones principales: la conexión a una base de datos, consultar una base de datos y gestión de resultados.
Cuando se desea interactuar con una base de datos que deben conectarse a él. La conexión requiere la identificación de la ubicación de la base de datos, pero también puede pedir para la gestión de la seguridad y otros restos complejo. Todos estos elementos son manejados como parte del proceso de conexión a una base de datos. La información de conexión suele ser pasado como una cadena, cuyo contenido se utiliza para ajustar los distintos parámetros.
Mientras que en el pasado había que escribir manualmente el código para acceder a una base de datos a través de ADO.NET al especificar el tipo de base de datos que desea conectar y configurar automáticamente las propiedades son adecuadas para ese tipo de conexión.
Hay varios tipos de bases de datos compatibles:
<configuration> <configSections> <= Nombre de la sección "System.Data.Odbc" type = " System.Data.Common.DbProviderConfigurationHandler, ..."/> Nombre <= Sección "System.Data.OleDb" type = " System.Data.Common.DbProviderConfigurationHandler, ..."/> Nombre <= Sección "System.Data.OracleClient" type = " System.Data.Common.DbProviderConfigurationHandler, ..."/> Nombre <Sección = "System.Data.SqlClient" type = " System.Data.Common.DbProviderConfigurationHandler, ... "/> <configSections /> <system.data> <DbProviderFactories> <Añadir name = "Microsoft SQL Server Data Provider Compact" invariante = " System.Data.SqlServerCe.3.5 " type = "System.Data.SqlServerCe.SqlCeProviderFactory ..." /> </ DbProviderFactories> </ System.Data> < / Configuración>>
Para crear la conexión de base de datos por lo tanto, debe utilizar el componente correcto. Con la disponibilidad de una conexión que puede utilizar para acceder a la base de datos. Por ejemplo, si nuestro equipo local de alojamiento una base de datos de SQL Server denominada DB_TEST debe entrar en nuestra aplicación de un eventual la siguiente cadena de conexión
<configuration> <connectionStrings> <Añadir nombre = "TEST" connectionString = "server = (local); Integrated Security = SSPI; base de datos DB_TEST = "/> </ ConnectionStrings> </ Configuración>En este punto usted puede abrir la conexión y tener la base de datos para la ejecución de las operaciones que queremos.
La mayoría de bases de datos soportan el lenguaje SQL (Structured Query Language) para realizar consultas, los cambios, las nuevas inserciones y eliminaciones de datos. Estos comandos habitualmente tienen una forma similar a la siguiente
SELECT * FROM Clientes WHERE apellido = 'Smith'donde el Cliente es una tabla en una base de datos. Este comando toma una lista de clientes de apellido Smith. Para obtener estos datos dentro de nuestra aplicación de un escribimos el siguiente código
TestDBApp clase
{
static void Main ()
{
DbProviderFactory DbProviderFactory DbProviderFactories.GetFactory = ("System.Data.SqlClient");
utilizando (DbConnection CONN dbProviderFactory.CreateConnection = ())
{
String s = ConfigurationManager.ConnectionStrings ["prueba"] ConnectionString.;
conn.ConnectionString = s;
conn.Open ();
DbCommand cmd = conn.CreateCommand ();
cmd.CommandText = "SELECT * FROM clientes WHERE Nombre = 'Smith'";
DbDataReader lector = cmd.ExecuteReader ();
/ / Usar el lector para acceder a los datos
}
}
}
Los comandos (cmd) con el método ExecuteReader hace que el envío de consultas nuestra base de datos.
Los resultados en este caso se obtienen a través de una instancia de la clase IDataReader, pero también se pueden gestionar a través de otra clase llamada DataSet.
El IDataReader está indicado para realizar las iteraciones de los resultados de una consulta. En particular, se expone el método de lectura que recorre la fila a la vez para sequenziale.Lo desventaja es que al escanear no es posible volver a una línea anterior y también se devuelve filas son de sólo lectura por lo que no puede cambiar el contenido.
La alternativa es el IDataReader al conjunto de datos, que permite la administración de un conjunto de datos desconectados. ADO.NET está diseñado principalmente para soportar aplicaciones muy escalable y uno de los principales problemas de escalabilidad es el límite en el número de conexiones a una base de datos. La base de datos, de hecho, a menudo tienen un límite en el número de conexiones activas simultáneamente en un momento dado y si todos los que se utilizan están permitidas las operaciones se ralentizan. Si el número de usuarios del sistema es aproximadamente igual a la cantidad de conexiones disponibles al mismo tiempo podría causar problemas no es relevante, pero si el número de usuarios ha aumentado el rendimiento del sistema puede sufrir de forma espectacular.
Para abordar estos problemas ADO.NET proporciona la clase DataSet, diseñado para proporcionar una especie de copia de la base de datos (o parte del mismo) que utiliza una aplicación. Las ventajas son muchas, basta pensar que en una instancia del conjunto de datos que puede introducir nuevos datos, actualizar o borrar los ya existentes, y confirmar todas estas operaciones que se ejecutan en modo desconectado mediante la conexión a la base de datos por un período corto de tiempo.
La clase DataSet incluye un conjunto de objetos DataTable, que se llenan a través del DataAdapter. Estos elementos son invocados cuando se cargan los datos de la base de datos directamente en el objeto DataTable y cómo se puede trabajar en estos datos locales, interactuando con la base de datos sólo cuando confirma los cambios realizados en ellos.
Así, utilizando el conjunto de datos que pueden tener acceso a todos los elementos en él tan completamente al azar, a diferencia de lo que hemos visto para el componente DbDataReader.
| |
ASP (Advanced)
Ciclo completo para la creación de sitios Web dinámicos. A partir de 39 €. |
| |
ASP.NET (Curso)
Ciclo completo para la creación de aplicaciones Web y un 15% de descuento hasta el 14/09/2011. |
| |
SQL y bases de datos (Curso)
Crear y gestionar bases de datos relacionales. A partir de 39 €. |