Compartir a través de


Procedimiento para llamar a un procedimiento almacenado mediante LINQ (Visual Basic)

Language-Integrated Consulta (LINQ) facilita el acceso a la información de la base de datos, incluidos objetos de base de datos como procedimientos almacenados.

En el ejemplo siguiente se muestra cómo crear una aplicación que llama a un procedimiento almacenado en una base de datos de SQL Server. En el ejemplo se muestra cómo llamar a dos procedimientos almacenados diferentes en la base de datos. Cada procedimiento devuelve los resultados de una consulta. Un procedimiento toma parámetros de entrada y el otro procedimiento no toma parámetros.

En los ejemplos de este artículo se usa la base de datos de ejemplo Northwind. Para obtener la base de datos, consulte Descarga de bases de datos de ejemplo.

Nota

El equipo puede mostrar nombres o ubicaciones diferentes para algunos de los elementos de la interfaz de usuario de Visual Studio en las instrucciones siguientes. La edición de Visual Studio que tiene y la configuración que usa determinan estos elementos. Para obtener más información, consulte Personalizando el IDE.

Para crear una conexión a una base de datos

  1. En Visual Studio, abra Explorador de servidores/Explorador de bases de datos haciendo clic en Explorador de servidores/Explorador de bases de datos en el menú ver .

  2. Haga clic con el botón derecho en Conexiones de datos en Explorador de servidores/Explorador de bases de datos y luego haga clic en Agregar conexión.

  3. Especifique una conexión válida a la base de datos de ejemplo Northwind.

Para agregar un proyecto que contiene un archivo LINQ to SQL

  1. En el menú Archivo de Visual Studio, apunte a Nuevo y haga clic en Proyecto. Seleccione Visual Basic Aplicación de Windows Forms como tipo de proyecto.

  2. En el menú Proyecto , haga clic en Agregar nuevo elemento. Seleccione la plantilla de elemento Clases de LINQ to SQL.

  3. Asigne al archivo el nombre northwind.dbml. Haga clic en Agregar. El Diseñador relacional de objetos (Diseñador de O/R) se abre para el archivo northwind.dbml.

Para agregar procedimientos almacenados al Diseñador de O/R

  1. En Explorador de servidores/Explorador de bases de datos, expanda la conexión a la base de datos Northwind. Expanda la carpeta procedimientos almacenados .

    Si ha cerrado el Diseñador de O/R, puede volver a abrirlo haciendo doble clic en el archivo northwind.dbml que agregó anteriormente.

  2. Haga clic en el procedimiento almacenado Sales by Year y arrástrelo al panel derecho del diseñador. Haga clic en el procedimiento almacenado Ten Most Expensive Products y arrástrelo al panel derecho del diseñador.

  3. Guarda los cambios y cierra el diseñador.

  4. Guarde el proyecto.

Para agregar código para mostrar los resultados de los procedimientos almacenados

  1. En el Cuadro de herramientas, arrastra un control DataGridView a la instancia predeterminada de Windows Forms del proyecto, Form1.

  2. Haga doble clic en Form1 para agregar código a su evento Load.

  3. Cuando agregó procedimientos almacenados al Diseñador de O/R, el diseñador agregó un objeto DataContext para el proyecto. Este objeto contiene el código que debe tener para tener acceso a esos procedimientos. El objeto DataContext para el proyecto se denomina en función del nombre del archivo .dbml. Para este proyecto, el objeto DataContext se denomina northwindDataContext.

    Puede crear una instancia de DataContext en el código y llamar a los métodos de procedimientos almacenados especificados por Object Relational Designer. Para enlazar con el objeto DataGridView, es posible que tenga que forzar la ejecución de la consulta inmediatamente llamando al método ToList en los resultados del procedimiento almacenado.

    Agregue el siguiente código al evento Load para llamar a cualquiera de los procedimientos almacenados que se presentan como métodos en su contexto de datos.

    Dim db As New northwindDataContext
    
    ' Display the results of the Sales_by_Year stored procedure.
    DataGridView1.DataSource =
        db.Sales_by_Year(#1/1/1996#, #1/1/2007#).ToList()
    
    ' Display the results of the Ten_Most_Expensive_Products
    ' stored procedure.
    
    DataGridView1.DataSource =
        db.Ten_Most_Expensive_Products.ToList()
    
  4. Presione F5 para ejecutar el proyecto y ver los resultados.

Consulte también