Compartir a través de


Creación de consultas parametrizadas de TableAdapter en aplicaciones .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. 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.

Una consulta parametrizada devuelve datos que cumplen las condiciones de una cláusula WHERE dentro de la consulta. Por ejemplo, puede parametrizar una lista de clientes para mostrar solo los clientes de una determinada ciudad; para ello, agrega WHERE City = @City al final de la instrucción SQL que devuelve una lista de clientes.

Las consultas TableAdapter parametrizadas se crean en el Diseñador de DataSet. También puede crearlas en una aplicación de Windows con el comando Parametrizar origen de datos en el menú Datos. El comando Parametrizar origen de datos crea controles en el formulario donde puede especificar los valores de los parámetros y ejecutar la consulta.

Nota

Para construir una consulta parametrizada, use la notación de parámetros específica de la base de datos para la que está creando código. Por ejemplo, los orígenes de datos de Access y Oledb usan el signo de interrogación «?» para denotar los parámetros, por lo que la cláusula WHERE tendría esta apariencia: WHERE City = ?.

Creación de una consulta TableAdapter parametrizada

Para crear una consulta parametrizada en el Diseñador de Dataset

  • Crea un nuevo TableAdapter y agrega una cláusula WHERE con los parámetros deseados a la instrucción SQL. Para más información, consulte Creación y configuración de TableAdapters.

    o

  • Agrega una consulta a un TableAdapter existente, y agrega una cláusula WHERE con los parámetros deseados a la instrucción SQL.

Para crear una consulta parametrizada durante el diseño de un formulario enlazado a datos

  1. Seleccione en el formulario un control que ya esté enlazado a un conjunto de datos. Para más información, consulte Enlace de controles de Windows Forms a datos en Visual Studio.

  2. En el menú Datos, seleccione Agregar consulta.

  3. Complete el cuadro de diálogo Generador de criterios de búsqueda y agrega una cláusula WHERE con los parámetros deseados a la instrucción SQL.

Para agregar una consulta a un formulario enlazado a datos existente

  1. Abra el formulario en el Diseñador de Windows Forms.

  2. En el menú Datos, seleccione Agregar consulta o Etiquetas inteligentes de datos.

    Nota

    Si Agregar consulta no está disponible en el menú Datos, seleccione un control en el formulario que muestra el origen de datos al que quiere agregar parametrización. Por ejemplo, si el formulario muestra datos en un control DataGridView, selecciónelo. Si el formulario muestra datos en controles individuales, seleccione un control enlazado a datos.

  3. En el área Seleccionar tabla de origen de datos, seleccione la tabla a la que quiere agregar parametrización.

  4. Escriba un nombre en el cuadro Nuevo nombre de consulta si va a crear una nueva consulta.

    o

    Seleccione una consulta en el cuadro Nombre de consulta existente.

  5. En el cuadro Texto de consulta, escriba una consulta que acepte parámetros.

  6. Seleccione Aceptar.

    Se agregan al formulario un control para especificar los valores del parámetro y un botón Cargar, en un control ToolStrip.

Consulta de valores NULL

A los parámetros TableAdapter se le pueden asignar valores NULL cuando se quiera consultar los registros que no tienen ningún valor actual. Por ejemplo, considere la siguiente consulta que tiene un parámetro ShippedDate en su cláusula WHERE:

SELECT CustomerID, OrderDate, ShippedDate
FROM Orders
WHERE (ShippedDate = @ShippedDate) OR (ShippedDate IS NULL)

Si fuera una consulta de una instancia de TableAdapter, podría consultar todos los pedidos que no se han enviado con el código siguiente:

ordersTableAdapter.FillByShippedDate(northwindDataSet.Orders, null);

Para permitir que una consulta acepte valores NULL:

  1. En el Diseñador de DataSet, seleccione la consulta TableAdapter que debe aceptar valores de parámetro NULL.

  2. En la ventana Propiedades, seleccione Parámetros y, a continuación, seleccione el botón de puntos suspensivos (...) para abrir el Editor de colección de parámetros.

  3. Seleccione el parámetro que permite valores NULL y establezca la propiedad AllowDbNull en true.