如何:使用 LINQ 调用存储过程(Visual Basic)

Language-Integrated 查询(LINQ)可以轻松访问数据库信息,包括数据库对象(如存储过程)。

以下示例演示如何创建在 SQL Server 数据库中调用存储过程的应用程序。 此示例演示如何在数据库中调用两个不同的存储过程。 每个过程返回查询的结果。 一个过程采用输入参数,另一个过程不采用参数。

本文中的示例使用 Northwind 示例数据库。 若要获取数据库,请参阅 下载示例数据库

注意

计算机可能会在以下说明中显示某些 Visual Studio 用户界面元素的不同名称或位置。 你拥有的 Visual Studio 版本以及所使用的设置决定了这些元素。 有关详细信息,请参阅个性化设置 IDE

创建与数据库的连接

  1. 在 Visual Studio 中,单击“视图” 菜单上的“服务器资源管理器”/“数据库资源管理器”,打开“服务器资源管理器”/数据库资源管理器

  2. 服务器资源管理器/数据库资源管理器 中右键单击 数据连接,然后单击 添加连接

  3. 指定与 Northwind 示例数据库的有效连接。

添加包含 LINQ to SQL 文件的项目

  1. 在 Visual Studio 的“文件”菜单上,指向 “新建”,然后单击 项目。 选择 Visual Basic Windows 窗体应用程序 作为项目类型。

  2. 在“项目”菜单上,单击 “添加新项”。 选择“LINQ to SQL 类”项模板

  3. 将文件命名为 northwind.dbml。 单击 添加。 使用对象关系设计器(O/R 设计器)打开 northwind.dbml 文件。

将存储过程添加到 O/R 设计器

  1. 服务器资源管理器/数据库资源管理器中,展开与 Northwind 数据库的连接。 展开 “存储过程” 文件夹。

    如果已关闭 O/R 设计器,可以通过双击前面添加的 northwind.dbml 文件重新打开它。

  2. 单击“Sales by Year”存储过程,并将其拖放到设计器的右侧窗格中。 单击“Ten Most Expensive Products”存储过程,并将其拖到设计器的右侧窗格中

  3. 保存更改并关闭设计器。

  4. 保存项目。

添加代码以显示存储过程的结果

  1. 工具箱中,将 DataGridView 控件拖到项目 Form1 的默认 Windows 窗体上。

  2. 双击“Form1”,将代码添加到它的 Load 事件。

  3. 将存储过程添加到 O/R 设计器时,设计器为项目添加了 DataContext 对象。 此对象包含必须访问这些过程的代码。 项目的 DataContext 对象是根据 .dbml 文件的名称命名的。 对于此项目,DataContext 对象命名为 northwindDataContext

    可以在代码中创建 DataContext 实例,并调用 O/R 设计器指定的存储过程方法。 为了绑定到 DataGridView 对象,您可能需要通过调用存储过程结果上的 ToList 方法来强制查询立即执行。

    将以下代码添加到 Load 事件,以调用作为数据上下文方法公开的任一存储过程。

    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. F5 运行项目并查看结果。

另请参阅