¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. ASP.NET con C# en Visual Studio 2017
  3. El acceso a datos con ADO.NET
Extrait - ASP.NET con C# en Visual Studio 2017 Diseño y desarrollo de aplicaciones Web
Extractos del libro
ASP.NET con C# en Visual Studio 2017 Diseño y desarrollo de aplicaciones Web Volver a la página de compra del libro

El acceso a datos con ADO.NET

Bases de ADO.NET

En .NET, el acceso a los datos se realiza mediante un bloque de servicios ADO.NET. Si bien el framework ASP.NET se ha enriquecido con nuevos controles que facilitan la lectura y la presentación de datos SQL, el desarrollo debería considerar el uso del modo conectado para elaborar una aplicación ASP.NET. En efecto, las restricciones de carga, de integración y de ejecución de la web influyen de manera importante en la eficiencia final de una aplicación ASP.NET.

1. El modo conectado

En el modo conectado, todos los formatos básicos de datos adoptan el mismo funcionamiento. Lo ilustraremos con SQL Server, y para pasar a otros formatos bastará con cambiar el espacio de nombres y modificar el prefijo de cada clase.

La siguiente tabla muestra los cambios necesarios:

Espacio de nombres

Conexión

Comando

SQL Server

System.Data.SqlClient

SqlConnection

SqlCommand

Access

System.Data.OleDB

OleDBConnection

OleDBCommand

Oracle

System.Data.Oracle-Client

OracleConnection

OracleCommand

Las demás clases se nombran siguiendo el mismo principio.

a. La conexión

La conexión SqlConnection designa el canal por el que se intercambian las órdenes y los registros SQL. Este canal lo programan C# y la base de datos.

El objeto SqlConnection posee varios estados, cabe destacar dos de ellos: abierto y cerrado. Los demás estados están activos de forma transitoria o cuando ocurre algún error.

El programa interactúa con una conexión mediante la propiedad ConnectionString y los métodos Open() y Close(). Lo esencial de las operaciones ligadas a una base de datos solo puede realizarse a través de una conexión abierta.


// inicialización de la conexión 
string c_string=@"data source=.\SQL2005; initial catalog= 
agenda; integrated security=true";  
SqlConnection cx_agenda;  
cx_agenda=new SqlConnection();  
cx_agenda.ConnectionString=c_string;  
  
// apertura  
cx_agenda.Open();  
  
// operaciones SQL   
  
  
// Cierre  
cx_agenda.Close();
 

La cadena de conexión está formada por distintos segmentos que indican el nombre de la máquina que alberga la base de datos, el nombre de la base de datos, las credenciales del usuario... La sintaxis depende de cada formato de base de datos. En SQL Server, la cadena de conexión...

Acceso a los datos mediante proveedores

1. Introducción al desarrollo por proveedores

El acceso a los datos desde un sitio ASP.NET es, sin duda, uno de los aspectos más delicados de afrontar; para ayudar en la arquitectura de esta tarea, el framework .NET proporciona varios niveles de desarrollo:

Modo conectado

Clases y componentes en contacto directo con la base de datos.

Modo desconectado

Componentes y herramientas que desacoplan la interfaz gráfica de la base de datos.

Modo proveedor de datos

Sistematización de una organización de acceso a datos.

El desarrollo basado en un proveedor no consiste en enriquecer la API con nuevas clases. Se trata, más bien, de una estrategia, de una organización para obtener un buen resultado. En lo relativo al acceso a los datos, Microsoft define los proveedores como controles que agrupan una interfaz para el data binding, un almacén de datos (digamos un DataSet), un mecanismo de adaptación, una caché de datos así como una estrategia.

images/ch5fig28.png

El framework ASP.NET define controles que implementan el acceso a datos según el modo proveedor. La sección Datos del cuadro de herramientas de Visual Studio proporciona, precisamente, este tipo de control. De forma complementaria, existen otros controles útiles para la presentación y la edición de datos.

images/06pagina_55.png

a. Controles origen de datos en modo proveedor

Estos controles tienen en común el hecho de adoptar un estilo declarativo: se trata de controles Web Forms, sus propiedades vienen determinadas por el código XHTML. En la mayoría de ocasiones con muy poco código de usuario, a excepción de ObjectDataSource que es, precisamente, un control previsto para tener en cuenta las especificidades del programador.

SqlDataSource

Control origen de datos especializado en el acceso a SQL Server.

AccessDataSource

Control origen de datos especializado en el acceso a MS-Access.

ObjectDataSource

El programador define su propia fábrica de objetos que se asocia, a continuación, a una instancia de Object-DataSource para las operaciones de data binding.

XmlDataSource

Control origen de datos especializado en la lectura filtrada de archivos XML.

SiteMapDataSource

Control origen de datos asociado al archivo de definición del mapa del sitio.

LinqDataSource

Control origen de datos asociado a un contexto de ob-jetos LINQ.

EntityDataSource

Control origen...

Componentes gráficos de presentación de datos

1. El componente GridView

El componente GridView es el sucesor de DataGrid, disponible todavía por motivos de mantenimiento pero que se ha vuelto obsoleto. El GridView retoma las directrices de funcionamiento y la implantación de su predecesor. Es, también, mucho más práctico para las operaciones de actualización.

a. Presentación tabular de datos

Los orígenes de datos SQL están organizados en tablas y en registros. El GridView presenta cada registro en una fila, las columnas de la tabla serán las columnas de la tabla en pantalla.

Origen de datos

Las smart tags (accesos directos gráficos) resultan muy útiles para configurar un componente GridView y, en particular, su origen de datos (Configurar origen de datos). Si se trata de un control de origen (SqlDataSource, por ejemplo), no es necesario invocar al método DataBind(). Si se trata de un DataSet, el programador deberá realizar esta llamada como se describe en el caso de la versión 1.X.

Formato general

El formato general (colores, tamaño, apariencia) se define mediante la barra de propiedades. Como con el DataGrid que reemplaza, es posible aplicar formatos estándar mediante la smart tag Formato automático. No es posible personalizar la lista de formatos estándar que tiene por defecto Visual Studio.

Columnas

Por defecto, el GridView detecta los campos presentes a nivel de origen de datos y genera, para cada uno de ellos, una columna "HTML". El programador decide el orden de las columnas y aplica un formato a los valores correspondientes. Utiliza, para ello, la smart tag Editar columnas.

images/05EI31.png

Como el DataGrid, GridView proporciona distintos tipos de columnas:

BoundField

En el modelo por defecto, utiliza un Label y un TextBox para presentar y editar el valor.

CheckboxField

Utiliza una casilla de selección para editar el valor. Funciona bien con el tipo SQL bit (equivalente a bool).

HyperLinkField

El valor de la columna se utiliza para formatear un enlace hipertexto.

ImageField

El valor de la columna configura la visualización de una imagen.

ButtonField

El valor de la columna configura la representación de un botón.

CommandField

Acciones sobre el GridView: selección, edición, validación, anulación y borrado.

A menudo, las columnas se asocian...