如何:使用 LINQ 调用存储过程 (Visual Basic)
使用语言集成查询 (LINQ) 可以方便地访问数据库信息(包括存储过程等数据库对象)。
下面的示例演示如何创建调用 SQL Server 数据库中的存储过程的应用程序。该示例演示如何调用数据库中的两个不同的存储过程。每个过程都返回查询结果。一个过程采用输入参数,另一个过程不采用参数。
本主题中的示例使用 Northwind 示例数据库。如果没有在开发计算机中安装 Northwind 示例数据库,可以从 Microsoft Download Center(Microsoft 下载中心)网站下载该数据库。有关说明,请参见Downloading Sample Databases (LINQ to SQL)。
说明 |
---|
对于在以下说明中使用的某些 Visual Studio 用户界面元素,您的计算机可能会显示不同的名称或位置。这些元素取决于您所使用的 Visual Studio 版本和您所使用的设置。有关更多信息,请参见 Visual Studio 设置。 |
创建与数据库的连接
在 Visual Studio 中,通过在**“视图”菜单上单击“服务器资源管理器”/“数据库资源管理器”,打开“服务器资源管理器”/“数据库资源管理器”**。
在**“服务器资源管理器”/“数据库资源管理器”中,右击“数据连接”,然后单击“添加连接”**。
指定与 Northwind 示例数据库的有效连接。
添加包含 LINQ to SQL 文件的项目
在 Visual Studio 中的**“文件”菜单上,指向“新建”,然后单击“项目”。选择 Visual Basic“Windows 窗体应用程序”**作为项目类型。
在**“项目”菜单上,单击“添加新项”。选择“LINQ to SQL 类”**项模板。
将文件命名为 northwind.dbml。单击**“添加”**。为 northwind.dbml 文件打开对象关系设计器(O/R 设计器)。
将存储过程添加到 O/R 设计器上
在**“服务器资源管理器”/“数据库资源管理器”中,展开与 Northwind 数据库的连接。展开“存储过程”**文件夹。
如果已经关闭 O/R 设计器,可以通过双击先前添加的 northwind.dbml 文件重新将其打开。
单击**“Sales by Year”存储过程并将它拖到设计器的右窗格中。单击“Ten Most Expensive Products”**存储过程并将它拖到设计器的右窗格中。
保存所做的更改并关闭设计器。
保存您的项目。
添加用于显示存储过程结果的代码
从**“工具箱”**中,将 DataGridView 控件拖到项目的默认 Windows 窗体 Form1 上。
双击 Form1,向其 Load 事件添加代码。
将存储过程添加到 O/R 设计器后,设计器会为项目添加一个 DataContext 对象。此对象包含访问这些过程所必需的代码。项目的 DataContext 对象是根据 .dbml 文件的名称命名的。对于此项目,DataContext 对象被命名为 northwindDataContext。
可以在代码中创建 DataContext 的实例并调用 O/R 设计器指定的存储过程方法。若要绑定到 DataGridView 对象,必须强制查询通过对存储过程的结果调用 ToList<TSource> 方法立即执行。
将下面的代码添加到 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()
按 F5 运行项目并查看结果。
请参见
任务
How to: Assign Stored Procedures to Perform Updates, Inserts, and Deletes (O/R Designer)
Walkthrough: Creating LINQ to SQL Classes (O/R Designer)
概念
DataContext Methods (O/R Designer)