Compartir a través de


Cómo: Crear y ejecutar una instrucción SQL que devuelva filas

Actualización: noviembre 2007

Para ejecutar una instrucción SQL que devuelve filas, puede ejecutar una consulta TableAdapter configurada para ejecutar una instrucción SQL (por ejemplo, CustomersTableAdapter.Fill(CustomersDataTable)).

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

Los ejemplos siguientes muestran cómo ejecutar instrucciones SQL que devuelvan filas desde 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.

Ejecución de instrucciones SQL que devuelven filas mediante un TableAdapter

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

Nota:

Los cuadros de diálogo y comandos de menú que se ven pueden diferir de los descritos en la Ayuda, en función de los valores de configuración o de edición activos. Para cambiar la configuración, elija la opción Importar y exportar configuraciones del menú Herramientas. Para obtener más información, vea Valores de configuración de Visual Studio.

Para crear una instrucción SQL que devuelve filas 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, cree un TableAdapter. Para obtener más información sobre la creación de TableAdapters, vea Cómo: Crear TableAdapters.

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

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

    Se abrirá el Asistente para la configuración de consultas de TableAdapter.

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

  6. Deje el valor predeterminado de SELECT que devuelve filas y, a continuación, haga clic en Siguiente.

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

  8. Proporcione un nombre para la consulta.

  9. Finalice el asistente; la consulta se agregará al TableAdapter.

  10. Genere el proyecto.

Para declarar una instancia del TableAdapter y ejecutar la consulta

  1. Declare una instancia del 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 aparecerán en el Cuadro de herramientas, bajo un encabezado que coincide con el nombre del proyecto.) Si el TableAdapter no aparece en el Cuadro de herramientas, tal vez sea necesario generar el proyecto.

      O bien

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

      Dim tableAdapter As New DataSetTableAdapters.TableAdapter

      Nota:

      Los TableAdapters no se encuentran 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 contenga sus TableAdapters.

  2. Llame a su consulta de la misma forma que llamaría a cualquier otro método en código. Su consulta es un método en el TableAdapter. Reemplace el código siguiente con los nombres de su TableAdapter y consulta. También es necesario pasar los parámetros requeridos por la consulta. Si no está seguro de si su consulta requiere parámetros, o qué parámetros requiere, busque en IntelliSense la firma necesaria de la consulta. Dependiendo de si la consulta toma o no parámetros, el código sería similar a:

    TableAdapter.Query()

    TableAdapter.Query(Parameters)

    TableAdapter.Query(DataTable, Parameters)

  3. El código completo para declarar una instancia del TableAdapter y ejecutar la consulta debe ser similar a:

    Dim tableAdapter As New NorthwindDataSetTableAdapters.CustomersTableAdapter()
    tableAdapter.FillByCity(NorthwindDataSet.Customers, "Seattle")
    
    NorthwindDataSetTableAdapters.CustomersTableAdapter tableAdapter = 
        new NorthwindDataSetTableAdapters.CustomersTableAdapter();
    
    tableAdapter.FillByCity(northwindDataSet.Customers, "Seattle");
    

Ejecución de instrucciones SQL que devuelven filas mediante un objeto de comando

El ejemplo siguiente muestra cómo crear un comando y ejecutar una instrucción SQL que devuelve filas. Para obtener información sobre cómo configurar y obtener 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, System.Data.SqlClient 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, será necesaria una instrucción SQL válida para su origen de datos).

Para ejecutar una instrucción SQL que devuelve filas mediante programación a través de un objeto de comando

  • Agregue el código siguiente a un método desde donde desee ejecutar el código. Se devuelven filas llamando al método ExecuteReader del comando (por ejemplo, ExecuteReader). Los datos se devuelven en un objeto SqlDataReader. Para obtener más información sobre cómo tener acceso a los datos en un SqlDataReader, vea Recuperar datos mediante DataReader (ADO.NET).

    Dim sqlConnection1 As New SqlConnection("Your Connection String")
    Dim cmd As New SqlCommand
    Dim reader As SqlDataReader
    
    cmd.CommandText = "SELECT * FROM Customers"
    cmd.CommandType = CommandType.Text
    cmd.Connection = sqlConnection1
    
    sqlConnection1.Open()
    
    reader = cmd.ExecuteReader()
    ' Data is accessible through the DataReader object here.
    
    sqlConnection1.Close()
    
    SqlConnection sqlConnection1 = new SqlConnection("Your Connection String");
    SqlCommand cmd = new SqlCommand();
    SqlDataReader reader;
    
    cmd.CommandText = "SELECT * FROM Customers";
    cmd.CommandType = CommandType.Text;
    cmd.Connection = sqlConnection1;
    
    sqlConnection1.Open();
    
    reader = cmd.ExecuteReader();
    // Data is accessible through the DataReader object here.
    
    sqlConnection1.Close();
    

Seguridad

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

Vea también

Tareas

Cómo: Crear consultas de TableAdapter

Cómo: Editar consultas de TableAdapter

Cómo: Llenar un conjunto de datos con datos

Referencia

SqlCommand.ExecuteReader

OleDbCommand.ExecuteReader

OdbcCommand.ExecuteReader

OracleCommand.ExecuteReader