Un control de fuente de datos interactúa con controles vinculados a datos y oculta el complejo proceso de vinculación de datos. Estas son herramientas que proporcionan datos a controles vinculados a datos y admiten la ejecución de operaciones como insertar, eliminar y actualizar.
Cada control de fuente de datos incluye un proveedor de datos especial asociado con una base de datos, un archivo XML o una clase personalizada y ayuda a:
Administrar conexiones
Seleccionar datos
Gestione aspectos de presentación como paginación, almacenamiento en caché, etc.
Manipular datos
Hay muchos controles de fuentes de datos disponibles en ASP.NET para obtener datos de un servidor SQL, un servidor ODBC u OLE DB, de archivos XML y de objetos comerciales.
Según el tipo de datos, estos controles se pueden dividir en dos categorías:
Control de fuente de datos en capas
Control de fuente de datos basado en tablas
Los controles de origen de datos para datos jerárquicos son:
XMLDataSource : permite vincular archivos y cadenas XML con o sin información de esquema.
SiteMapDataSource : permite vincular un proveedor que proporciona información del mapa del sitio.
Los controles de fuente de datos utilizados para datos tabulares son:
Control de fuente de datos | describir |
---|---|
Fuente de datos Sql | Representa una conexión a un proveedor de datos ADO.NET que devuelve datos SQL, incluidas las fuentes de datos disponibles a través de OLEDB y QDBC. |
Fuente de datos del objeto | Permite vincular un objeto comercial .Net personalizado que devuelve datos. |
Fuente Linqdata | Permite vincular los resultados de consultas Linq-t0-SQL. (Solo compatible con ASP.NET 3.5) |
Acceso a fuente de datos | Representa una conexión a una base de datos de Microsoft Access. |
La vista de fuente de datos es un objeto de la clase DataSourceView, que representa una vista de datos personalizada diseñada para diferentes operaciones de datos como clasificación, filtrado, etc.
La clase DataSourceView se utiliza como clase base para todas las clases de vista de fuente de datos y define el rendimiento del control de fuente de datos.
La siguiente tabla proporciona las propiedades de la clase DataSourceView:
propiedad | describir |
---|---|
Puede eliminar | Indica si se permite la eliminación de posibles fuentes de datos. |
Puede insertar | Indica si se permite la inserción de posibles fuentes de datos. |
página de Can | Indica si se permite la paginación de posibles fuentes de datos. |
CanRetrieveTotalRowCount | Indica si se puede obtener la información total de la fila. |
Puede ordenar | Indica si los datos se pueden ordenar. |
Puede actualizar | Indica si se permiten actualizaciones en la fuente de datos potencial. |
Eventos | Obtiene una lista de controladores de eventos representados por la vista del origen de datos. |
Nombre | El nombre de la vista. |
La siguiente tabla proporciona los métodos de la clase DataSourceView:
método | describir |
---|---|
Puede ejecutar | Determine si el comando especificado se puede ejecutar. |
Ejecutar comando | Ejecute el comando especificado. |
EjecutarEliminar | Realiza una operación de eliminación en la lista de datos representada por el objeto DataSourceView. |
EjecutarInsertar | Realiza una operación de inserción en la lista de datos representada por un objeto DataSourceView. |
EjecutarSeleccionar | Obtenga una lista de datos del almacén de datos subyacente. |
EjecutarActualizar | Realiza una operación de actualización en la lista de datos representados por el objeto DataSourceView. |
Borrar | Realiza una operación de eliminación de los datos asociados con la vista. |
Insertar | Realiza una operación de inserción en los datos asociados con la vista. |
Seleccionar | Devuelve los datos consultados. |
Actualizar | Realiza una operación de actualización de los datos asociados a la vista. |
OnDataSourceViewCambiado | Genera el evento DataSourceViewChanged. |
RaiseUnsupportedCapabilitiesError | Lo llama el método RaiseUnsupportedCapabilitiesError para comparar las capacidades requeridas por la operación ExecuteSelect con las capacidades admitidas por la vista. |
El control SqlDataSource representa una conexión a una base de datos relacionada, como una base de datos SQL Server u Oracle, o a datos accesibles a través de OLEDB u Open Database Connectivity (ODBC). La conexión de datos se completa a través de dos propiedades importantes: ConnectionString y ProviderName.
El siguiente fragmento de código proporciona la sintaxis básica del control:
<asp:SqlDataSource runat="server" ID="MySqlSource" ProviderName='<%$ ConnectionStrings:LocalNWind.ProviderName %>' ConnectionString='<%$ ConnectionStrings:LocalNWind %>' SelectionCommand= "SELECT * FROM EMPLOYEES" /><asp:GridView ID="GridView1" runat="server" DataSourceID="MySqlSource" />
La configuración de diferentes operaciones de datos en los datos subyacentes depende de diferentes propiedades (conjuntos de propiedades) del control de fuente de datos.
La siguiente tabla proporciona el conjunto de propiedades relacionadas del control SqlDataSource, que proporciona la interfaz de programación del control:
grupo de atributos | describir |
---|---|
Eliminar comando, eliminar parámetros, eliminar tipo de comando | Obtiene o establece la instrucción SQL, los parámetros y el tipo de filas que se eliminarán en los datos subyacentes. |
Expresión de filtro, parámetros de filtro | Obtiene y establece parámetros y cadenas de filtrado de datos. |
Insertar comando, Insertar parámetros, Insertar tipo de comando | Obtiene o establece la instrucción SQL, los parámetros y el tipo de filas insertadas en los datos subyacentes. |
Seleccionar comando, seleccionar parámetros, seleccionar tipo de comando | Obtiene o establece la instrucción SQL, los parámetros y el tipo de filas recuperadas de los datos subyacentes. |
Ordenar nombre de parámetro | Obtiene o establece el nombre de un parámetro de entrada que utilizará el procedimiento almacenado del comando para ordenar los datos. |
UpdateCommand,UpdateParameters,UpdateCommandType | Obtiene o establece la instrucción SQL, los parámetros y el tipo de filas actualizadas en los datos subyacentes. |
El siguiente fragmento de código muestra el control de fuente de datos que se puede utilizar para realizar operaciones de datos:
<asp:SqlDataSource runat="server" ID= "MySqlSource" ProviderName='<%$ ConnectionStrings:LocalNWind.ProviderName %>' ConnectionString=' <%$ ConnectionStrings:LocalNWind %>' SelectCommand= "SELECT * FROM EMPLOYEES" UpdateCommand= "UPDATE EMPLOYEES SET LASTNAME=@lame" DeleteCommand= "DELETE FROM EMPLOYEES WHERE EMPLOYEEID=@eid" FilterExpression= "EMPLOYEEID > 10"> ..... .....</asp:SqlDataSource>
El control ObjectDataSource permite que las clases definidas por el usuario conecten la salida de sus métodos a controles vinculados a datos. La interfaz de programación de esta clase es casi la misma que la del control SqlDataSource.
Los siguientes son dos aspectos importantes de la vinculación de objetos de cliente:
Una clase enlazable debe tener un constructor predeterminado, no tener estado y tener métodos que se mapeen para seleccionar, actualizar, insertar y eliminar semántica.
Los objetos deben actualizarse un elemento a la vez; no se admiten operaciones por lotes.
Pasemos directamente a un ejemplo del uso de este control. La clase de estudiante es una clase que se utiliza con un objeto de fuente de datos. Esta clase tiene tres atributos: identificación de estudiante, nombre y ciudad. Tiene un constructor predeterminado y un método GetStudents para recuperar datos.
clase de estudiante:
public class Student{ public int StudentID { get; set; } public string Name { get; set; } public string City { get; set; } public Student() { } public DataSet GetStudents() { DataSet ds = new DataSet(); DataTable dt = new DataTable("Students"); dt.Columns.Add("StudentID", typeof(System.Int32)); dt.Columns.Add("StudentName", typeof(System.String)); dt.Columns.Add("StudentCity", typeof(System.String)); dt.Rows.Add(new object[] { 1, "MH Kabir", "Calcutta" }); dt.Rows.Add(new object[] { 2, "Ayan J. Sarkar", "Calcutta" }); ds.Tables.Add(dt); return ds; }}
Realice los siguientes pasos para vincular el cable a un objeto de origen de datos y recuperar los datos:
Crea una nueva página web.
Agregue una clase (Student.cs) al proyecto del Explorador de soluciones haciendo clic derecho en él, agregando una plantilla de clase y colocando el código anterior dentro.
Establecer métodos para que una aplicación pueda utilizar una referencia a la clase.
Coloque un objeto de control de fuente de datos en el formulario web.
Configure la fuente de datos seleccionando el objeto.
Elija métodos de datos para diferentes operaciones de datos. En este ejemplo, sólo hay un método.
Coloque un control vinculado a datos, como una vista de cuadrícula, en la página y seleccione el objeto de fuente de datos como fuente de datos potencial.
En esta etapa, la vista de diseño debería verse así:
Al ejecutar el proyecto, recupera el antepasado codificado en la clase de los estudiantes.
El control AccessDataSource representa una conexión a una base de datos de Access. Se basa en el control SqlDataSource y proporciona una interfaz de programación más sencilla. El siguiente fragmento de código proporciona la sintaxis básica de la fuente de datos:
<asp:AccessDataSource ID="AccessDataSource1 runat="server" DataFile="~/App_Data/ASPDotNetStepByStep.mdb" SelectCommand="SELECT * FROM [DotNetReferences]"></asp:AccessDataSource>
El control AccessDataSource abre la base de datos en modo de solo lectura. Sin embargo, también se puede utilizar para realizar operaciones de inserción, actualización o eliminación. Esto se logra utilizando comandos y conjuntos de parámetros de ADO.NET.
Las actualizaciones son problemáticas para las bases de datos de Access dentro de las aplicaciones ASP.NET porque la base de datos de Access es un texto sin formato y la cuenta de la aplicación ASP.NET predeterminada puede tener permisos de escritura en los archivos de la base de datos.