Cómo: Llamar a un procedimiento almacenado usando LINQ (Visual Basic)
Language-Integrated Query (LINQ) simplifica el acceso a la información de las bases de datos, incluidos los objetos de base de datos como los 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.Uno de los procedimientos toma parámetros de entrada y el otro no toma ningún parámetro.
En los ejemplos de este tema se usa la base de datos de ejemplo Northwind.Si no tiene instalada la base de datos de ejemplo Northwind en el equipo de desarrollo, puede descargarla desde el sitio web del Centro de descarga de Microsoft.Para obtener instrucciones, vea Downloading Sample Databases (LINQ to SQL).
[!NOTA]
Es posible que su equipo muestre nombres o ubicaciones diferentes para algunos de los elementos de la interfaz de usuario de Visual Studio incluidos en las instrucciones siguientes. La edición de Visual Studio que se tenga y la configuración que se utilice determinan estos elementos. Para obtener más información, vea Valores de configuración de Visual Studio.
Para crear una conexión a una base de datos
En Visual Studio, haga clic en Explorador de servidores/Explorador de bases de datos en el menú Ver para abrir el Explorador de servidores/Explorador de bases de datos.
En el Explorador de servidores/Explorador de bases de datos, haga clic con el botón secundario del mouse en Conexiones de datos y, a continuación, haga clic en Agregar conexión.
Especifique una conexión válida a la base de datos de ejemplo Northwind.
Para agregar un proyecto que contiene un archivo de LINQ to SQL
En el menú Archivo de Visual Studio, elija Nuevo y, a continuación, haga clic en Proyecto.Seleccione Aplicación de Windows Forms de Visual Basic como tipo de proyecto.
En el menú Proyecto, haga clic en Agregar nuevo elemento.Seleccione la plantilla de elementos Clases de LINQ to SQL.
Asigne al archivo el nombre northwind.dbml.Haga clic en Agregar.Se abre el Object Relational Designer para el archivo northwind.dbml.
Para agregar procedimientos almacenados al Object Relational Designer
En el 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 Object Relational Designer, puede volver a abrirlo haciendo doble clic en el archivo northwind.dbml que agregó anteriormente.
Haga clic en el procedimiento almacenado Sales by Year y arrástrelo hasta el panel derecho del diseñador.Haga clic en el procedimiento almacenado Ten Most Expensive Products y arrástrelo hasta el panel derecho del diseñador.
Guarde los cambios y cierre el diseñador.
Guarde el proyecto.
Para agregar código para mostrar los resultados de los procedimientos almacenados
Desde el Cuadro de herramientas, arrastre un control DataGridView hasta el Windows Form predeterminado del proyecto, Form1.
Haga doble clic en Form1 para agregar código a su evento Load.
Cuando agregó procedimientos almacenados al Object Relational Designer, éste agregó un objeto DataContext al proyecto.Este objeto contiene el código necesario para obtener acceso a esos procedimientos.El nombre del objeto DataContext del proyecto se basa en el nombre del archivo .dbml.En 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 procedimiento almacenado especificados por el Object Relational Designer.Para enlazar al objeto DataGridView, puede que tenga que forzar la consulta a que se ejecute inmediatamente llamando al método ToList<TSource> en los resultados del procedimiento almacenado.
Agregue el código siguiente al evento Load para llamar a cualquiera de los procedimientos almacenados expuestos como métodos para el 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()
Presione F5 para ejecutar el proyecto y ver los resultados.
Vea también
Tareas
How to: Assign Stored Procedures to Perform Updates, Inserts, and Deletes (O/R Designer)
Walkthrough: Creating LINQ to SQL Classes (O/R Designer)
Conceptos
DataContext Methods (O/R Designer)