Cómo: Crear y ejecutar una instrucción SQL que devuelve un único valor

Actualización: noviembre 2007

Para ejecutar una instrucción SQL que devuelve un único valor, puede ejecutar una consulta TableAdapter configurada para ejecutar una instrucción SQL (por ejemplo, CustomersTableAdapter.CustomerCount()).

Si su aplicación no utiliza TableAdapters, llame al método ExecuteScalar en un objeto de comando, estableciendo su propiedad CommandType en Text. (El objeto "Command"" hace referencia al comando concreto para el Proveedor de datos de .NET Framework que utiliza su aplicación. Por ejemplo, si su aplicación utiliza el proveedor de datos de .NET Framework para el servidor SQL Server, el objeto de comando sería SqlCommand.)

Los ejemplos siguientes muestran cómo ejecutar instrucciones SQL que devuelven valores únicos de una base de datos utilizando TableAdapters u objetos de comando. Para obtener más información sobre cómo realizar consultas con TableAdapters y comandos, vea Información general sobre cómo rellenar conjuntos de datos y consultar datos.

Nota:

Los cuadros de diálogo y comandos de menú que se ven podrían ser distintos de los incluidos en la Ayuda, dependiendo de la configuración activa. Para cambiar la configuración, elija Importar y exportar configuraciones en el menú Herramientas. Para obtener más información, vea Valores de configuración de Visual Studio.

Este ejemplo muestra cómo crear una consulta de TableAdapter mediante Asistente para la configuración de consultas de TableAdapter y, a continuación, proporciona información acerca de cómo declarar una instancia de TableAdapter y ejecutar la consulta.

Para crear una instrucción SQL que devuelve un valor único mediante un TableAdapter

  1. Abra un conjunto de datos en el Diseñador de Dataset. Para obtener más información, vea Cómo: Abrir un objeto Dataset en el Diseñador de Dataset.

  2. Si no tiene uno ya, cree un TableAdapter. Para obtener más información sobre cómo crear TableAdapters, vea Cómo: Crear TableAdapters.

  3. Si ya tiene una consulta en su TableAdapter que utiliza una instrucción SQL para devolver un valor único, vaya al procedimiento siguiente, "Para declarar una instancia de TableAdapter y ejecutar la consulta". De lo contrario, continúe con el paso 4 para crear una nueva consulta que devuelva un valor único.

  4. Haga clic con el botón secundario del mouse en el TableAdapter deseado y utilice el menú contextual para agregar una consulta.

    El Asistente para la configuración de consultas de TableAdapter se abre.

  5. Deje el valor predeterminado de Usar instrucciones SQL y, a continuación, haga clic en Siguiente.

  6. Elija la opción SELECT que devuelve un solo valor y, a continuación, haga clic en Siguiente.

  7. Escriba su instrucción SQL o utilice el Generador de consultas para que le ayude a crear una y, a continuación, haga clic en Siguiente.

  8. Proporcione un nombre para la consulta.

  9. Finalice el asistente; la consulta se agrega al TableAdapter.

  10. Generar el proyecto.

Para declarar una instancia de TableAdapter y ejecutar la consulta

  1. Declare una instancia de TableAdapter que contenga la consulta que desea ejecutar.

    • Para crear una instancia utilizando las herramientas en tiempo de diseño, arrastre el TableAdapter deseado desde el Cuadro de herramientas. (Los componentes de su proyecto aparecen ahora en el Cuadro de herramientas, bajo un encabezado que coincide con el nombre de su proyecto.) Si el TableAdapter no aparece en el Cuadro de herramientas, puede que sea necesario generar su proyecto.

      o bien

    • Para crear una instancia de código, reemplace el código siguiente con los nombres de DataSet y TableAdapter.

      Dim tableAdapter As New DataSetTableAdapters.TableAdapter

      Nota:

      La búsqueda de TableAdapters no se realiza realmente dentro de sus clases de conjunto de datos asociadas. Cada conjunto de datos tiene una colección correspondiente de TableAdapters en su propio espacio de nombres. Por ejemplo, si tiene un conjunto de datos denominado SalesDataSet, habrá un espacio de nombres SalesDataSetTableAdapters que contiene sus TableAdapters.

  2. Llame a su consulta como llamaría a cualquier otro método del código. Su consulta es un método de TableAdapter. Reemplace el código siguiente con los nombres de su TableAdapter y realice la consulta. También es necesario pasar cualquier parámetro requerido por su consulta y hacer algo con el valor devuelto (por ejemplo, asignarlo a una variable.) Si no está seguro de si su consulta requiere parámetros, o de qué parámetros requiere, compruebe IntelliSense para averiguar la firma necesaria de la consulta. Dependiendo de si su consulta toma parámetros o no, el código se parecería al de uno de los ejemplos siguientes:

    TableAdapter.Query()

    TableAdapter.Query(Parameters)

  3. Probablemente necesitará asignar el valor devuelto por la consulta a una variable. Las consultas de TableAdapter que devuelven un valor único devolverán un tipo de datos basado en la consulta (como opuesto al método ExecuteScalar, que devuelve un objeto). Por ejemplo, si su consulta de TableAdapter selecciona una columna única cuyo tipo de datos es un entero, el valor devuelto de la consulta es un entero. Si la columna permite los valores nulos, el valor devuelto es uno de los tipos que aceptan valores NULL (por ejemplo, Nullable(Of Integer)). Para obtener más información sobre los tipos que aceptan valores NULL, vea Nullable. El código completo para declarar una instancia de un TableAdapter y ejecutar una consulta debe parecerse al siguiente (este ejemplo supone que el valor devuelto es un entero; ajuste su código según el tipo de datos devuelto por su consulta):

    NorthwindDataSetTableAdapters.CustomersTableAdapter tableAdapter = 
        new NorthwindDataSetTableAdapters.CustomersTableAdapter();
    
    int returnValue = (int)tableAdapter.GetCustomerCount();
    
    
    

El siguiente ejemplo muestra cómo crear un comando y ejecutar una instrucción SQL que devuelve un valor único. Para obtener información sobre cómo configurar y obtener los valores de parámetro para un comando, vea Cómo: Establecer y obtener parámetros para objetos de comandos.

Este ejemplo utiliza el objeto SqlCommand y requiere:

  • Referencias a los espacios de nombres System, System.Data y System.Xml .

  • Un conjunto de datos denominado SqlConnection1.

  • Una tabla denominada Customers en el origen de datos al que se conecta SqlConnection1. (De lo contrario, necesita una instrucción SQL válida para su origen de datos.)

Para ejecutar una instrucción SQL que devuelve un valor único mediante un DataCommand

  • Agregue el código siguiente a un método desde el que desee ejecutar el código. Devolverá un valor único llamando al método ExecuteScalar de un comando (por ejemplo, ExecuteScalar). Los datos se devuelven en un objeto Object.

    SqlConnection sqlConnection1 = new SqlConnection("Your Connection String");
    SqlCommand cmd = new SqlCommand();
    Object returnValue;
    
    cmd.CommandText = "SELECT COUNT(*) FROM Customers";
    cmd.CommandType = CommandType.Text;
    cmd.Connection = sqlConnection1;
    
    sqlConnection1.Open();
    
    returnValue = cmd.ExecuteScalar();
    
    sqlConnection1.Close();
    
    
    

La aplicación necesita permiso para tener acceso a la base de datos y ejecutar la instrucción SQL.

Adiciones de comunidad

Mostrar: