Creación y configuración de TableAdapters en aplicaciones de .NET Framework
Nota:
Los conjuntos de datos y las clases relacionadas son tecnologías heredadas de .NET Framework de principios de la década de 2000 que permiten a las aplicaciones trabajar con datos en memoria mientras están desconectadas de la base de datos. Las tecnologías son especialmente útiles para las aplicaciones que permiten a los usuarios modificar los datos y conservar los cambios en la base de datos. Aunque los conjuntos de datos han demostrado ser una tecnología de gran éxito, se recomienda que las nuevas aplicaciones de .NET usen Entity Framework Core. Entity Framework proporciona una manera más natural de trabajar con datos tabulares como modelos de objetos y tiene una interfaz de programación más sencilla.
Los TableAdapters comunican la aplicación con una base de datos. Se conectan a la base de datos, ejecutan consultas o procedimientos almacenados y devuelven una nueva tabla de datos o rellenan un DataTable existente con los datos devueltos. Los TableAdapters también envían datos actualizados desde la aplicación a la base de datos.
Los TableAdapters se crean automáticamente al realizar una de las siguientes acciones:
Arrastrar objetos de base de datos desde el Explorador de servidores al Diseñador de DataSet.
Ejecutar el Asistente para configuración de orígenes de datos y seleccionar el tipo de origen de datos Base de datos o Servicio web.
También puede crear un nuevo elemento TableAdapter y configurarlo con un origen de datos arrastrando el TableAdapter desde el Cuadro de herramientas a una región vacía en la superficie del Diseñador de DataSet.
Para obtener una introducción a TableAdapters, consulte Relleno de conjuntos de datos mediante TableAdapters.
Nota
Es posible que el equipo muestre nombres o ubicaciones diferentes para algunos de los elementos de la interfaz de usuario de Visual Studio en este artículo. Puede que esté usando una edición diferente de Visual Studio u otra configuración del entorno. Para obtener más información, vea Personalizar el IDE.
Uso del Asistente para configuración de TableAdapter
Ejecute el Asistente de configuración de TableAdapter para crear o editar TableAdapters y sus elementos DataTable asociados. Puede configurar un TableAdapter existente haciendo clic con el botón derecho en él en el Diseñador de DataSet.
Si arrastra un nuevo elemento TableAdapter desde el Cuadro de herramientas cuando el Diseñador de DataSet está en el foco, el Asistente se inicia y le pide que especifique a qué origen de datos debe conectarse el TableAdapter. En la página siguiente, el Asistente pregunta qué tipo de comandos debe usar para comunicarse con la base de datos: instrucciones SQL o procedimientos almacenados. (No ve esta pantalla si configura un TableAdapter que ya está asociado a un origen de datos).
Tiene la opción de crear un nuevo procedimiento almacenado en la base de datos subyacente si tiene los permisos correctos para la base de datos. Si no tiene estos permisos, es porque esta opción no está disponible.
También puede optar por ejecutar procedimientos almacenados existentes para los comandos SELECT, INSERT, UPDATE y DELETE de TableAdapter. Por ejemplo, el procedimiento almacenado asignado al comando Update se ejecuta cuando se llama al método
TableAdapter.Update()
.
Asigne parámetros desde el procedimiento almacenado seleccionado a las columnas correspondientes de la tabla de datos. Por ejemplo, si el procedimiento almacenado acepta un parámetro denominado @CompanyName
que pasa a la columna CompanyName
de la tabla, establezca la Columna de origen del parámetro @CompanyName
en CompanyName
.
Nota:
El procedimiento almacenado asignado al comando SELECT
se ejecuta al llamar al método del objeto TableAdapter al que se asigna un nombre en el paso siguiente del asistente. El método predeterminado es Fill
, por lo que el código que se usa normalmente para ejecutar el procedimiento SELECT
es TableAdapter.Fill(tableName)
. Si cambia el nombre predeterminado de Fill
, sustituya Fill
por el nombre que asigne y reemplace "TableAdapter" por el nombre real de TableAdapter (por ejemplo, CustomersTableAdapter
).
- La selección de la opción Crear métodos para enviar actualizaciones directamente a la base de datos es equivalente a establecer la propiedad
GenerateDBDirectMethods
en true. Esta opción no está disponible cuando la instrucción SQL original no proporciona bastante información o la consulta no es una consulta actualizable. Por ejemplo, esta situación se produce en consultas de tipo JOIN y en consultas que devuelven un único valor (escalar).
Las opciones avanzadas del asistente le permiten:
- Generar instrucciones
INSERT
,UPDATE
yDELETE
basándose en la instrucciónSELECT
que se define en la página Generar instrucciones SQL - Usar simultaneidad optimista
- Especificar si se va a actualizar la tabla de datos después de ejecutar instrucciones
INSERT
yUPDATE
Configurar el método de llenado de TableAdapter
A veces, es posible que desee cambiar el esquema de la tabla de TableAdapter. Para ello, modifique el método principal Fill
de TableAdapter. Los elementos TableAdapter se crean con un método Fill
principal que define el esquema de la tabla de datos asociada. El método Fill
principal se basa en la consulta o en el procedimiento almacenado que especificó al configurar originalmente el elemento TableAdapter. Es el primer método (más arriba) en la tabla de datos del Diseñador de DataSet.
Cualquier cambio realizado en el método Fill
principal de TableAdapter se refleja en el esquema de la tabla de datos asociada. Por ejemplo, al quitar una columna del método Fill
principal, se quita la columna de la tabla de datos asociada. Además, al quitar la columna del método Fill
principal, se quita la columna de cualquier consulta adicional para ese elemento TableAdapter.
Puede usar el Asistente para la configuración de consultas de TableAdapter para crear y editar consultas adicionales para TableAdapter. Estas consultas adicionales deben ajustarse al esquema de tabla, a menos que devuelvan un valor escalar. Cada consulta adicional tiene un nombre que especifique.
En el ejemplo siguiente se muestra cómo llamar a una consulta adicional denominada FillByCity
:
CustomersTableAdapter.FillByCity(NorthwindDataSet.Customers, "Seattle")
Para iniciar el Asistente para la configuración de consultas de TableAdapter con una nueva consulta
Abra su conjunto de datos en el Diseñador de Dataset.
Si va a crear una nueva consulta, arrastre un objeto Query (consulta) desde la pestaña DataSet del Cuadro de herramientas a DataTable o seleccione Agregar consulta en el menú contextual de TableAdapter. También puede arrastrar un objeto Query a un área vacía del Diseñador de DataSet, que crea un elemento TableAdapter sin un DataTable asociado. Estas consultas solo pueden devolver valores únicos (escalares) o ejecutar comandos
UPDATE
,INSERT
oDELETE
en la base de datos.En la pantalla Elegir la conexión de datos, seleccione o cree la conexión que usará la consulta.
Nota:
Esta pantalla solo aparece cuando el diseñador no puede determinar la conexión adecuada que se va a usar o cuando no hay conexiones disponibles.
En la página Elegir un tipo de comando, seleccione entre los métodos siguientes para obtener datos de la base de datos:
Usar instrucciones SQL permite escribir una instrucción SQL para seleccionar los datos de la base de datos.
Crear nuevo procedimiento almacenado permite que el asistente cree nuevos procedimientos almacenados (en la base de datos) basándose en la instrucción
SELECT
especificada.Usar procedimientos almacenados existentes permite ejecutar un procedimiento almacenado existente al ejecutar la consulta.
Para iniciar el Asistente para la configuración de consultas de TableAdapter en una consulta existente
Si va a editar una consulta TableAdapter existente, haga clic con el botón derecho en la consulta y, a continuación, elija Configurar en el menú contextual.
Nota:
Al hacer clic con el botón derecho en la consulta principal de un elemento TableAdapter, se vuelve a configurar ese TableAdapter y el esquema DataTable. Sin embargo, al hacer clic con el botón derecho en una consulta adicional en un elemento TableAdapter, solo se configura la consulta seleccionada. El Asistente para la configuración de TableAdapter vuelve a configurar la definición de TableAdapter, mientras que el Asistente para la configuración de consultas de TableAdapter vuelve a configurar la consulta seleccionada.
Para agregar una consulta global a TableAdapter
Las consultas globales son consultas SQL que devuelven un único valor (escalar) o no devuelven ningún valor. Normalmente, las funciones globales realizan operaciones de base de datos como inserciones, actualizaciones y eliminaciones. También agregan información, como un recuento de clientes en una tabla o los cargos totales de todos los elementos de un pedido determinado.
Para agregar consultas globales, arrastre un objeto Query desde la pestaña DataSet del Cuadro de herramientas a un área vacía del Diseñador de DataSet.
Proporcione una consulta que realice la tarea deseada, por ejemplo,
SELECT COUNT(*) AS CustomerCount FROM Customers
.Nota
Al arrastrar un objeto Query directamente al Diseñador de DataSet, se crea un método que devuelve solo un valor escalar (único). Aunque la consulta o el procedimiento almacenado que seleccione puede devolver más de un único valor, el método creado por el asistente solo devuelve un único valor. Por ejemplo, la consulta podría devolver la primera columna de la primera fila de los datos devueltos.