上一篇Using LINQ in ASP.NET (1)中介紹了利用LINQ to SQL實(shí)現對數據的增刪改的操作,但是在實(shí)際的項目應用中,我們經(jīng)常會(huì )使用到存儲過(guò)程。本篇將介紹如何利用LINQ對存儲過(guò)程進(jìn)行操作。
我們利用的還是Northwind數據庫,首先創(chuàng )建存儲過(guò)程:
(1)返回所有EMPLOYEES 的信息
CREATE PROCEDURE [dbo].[Employees_GetAll]
AS
SELECT * FROM EMPLOYEES ORDER BY EMPLOYEEID
(2)根據EMPLOYEEID獲得信息
CREATE PROCEDURE [dbo].[Employees_GetByID]
(
@ID int
)
AS
SELECT * FROM EMPLOYEES WHERE EMPLOYEEID=@ID
(3)添加職員信息
CREATE PROCEDURE [dbo].[Employees_Insert]
(
@FIRSTNAME NVARCHAR(20),
@LASTNAME NVARCHAR(20)
)
AS
INSERT INTO EMPLOYEES(FIRSTNAME,LASTNAME)
VALUES(@FIRSTNAME,@LASTNAME)
(4)更新職員信息
CREATE PROCEDURE [dbo].[Employees_Update]
(
@ID INT,
@FIRSTNAME NVARCHAR(20),
@LASTNAME NVARCHAR(20)
)
AS
UPDATE EMPLOYEES
SET FIRSTNAME=@FIRSTNAME,
LASTNAME=@LASTNAME
WHERE EMPLOYEEID=@ID
(5)刪除職員信息
CREATE PROCEDURE [dbo].[Employees_Delete]
(
@ID INT
)
AS
DELETE FROM EMPLOYEES WHERE EMPLOYEEID=@ID
前面我們知道了如何將一個(gè)數據表映射為實(shí)體類(lèi),現在我們要將存儲過(guò)程也相應的映射成為實(shí)體類(lèi),創(chuàng )建LINQ to SQL 的類(lèi)文件。

GetAllEmployees() 方法利用[Function]屬性進(jìn)行描述,由于存儲過(guò)程的返回值可能是一個(gè)或多個(gè)記錄,方法返回值的類(lèi)型必須和ISingleResult類(lèi)型相匹配。存儲過(guò)程返回的字段頁(yè)必須和Employee類(lèi)中聲明的相一致。
GetEmployeeByID() 接收一個(gè)參數,并且返回一行

調用存儲過(guò)程的時(shí)候需要傳入一個(gè)參數,方法的參數和存儲類(lèi)型的參數可以用[Parameter] 進(jìn)行匹配。參數傳給ExecuteMethodCall() 方法。大多數的代碼都是差不多的。
下面是對數據添加,刪除,修改的方法

好了,方法創(chuàng )建好了,接下來(lái)就是在A(yíng)SP.NET Web Form中對這些方法進(jìn)行調用。
添加一個(gè)DetailsView 控件。對它進(jìn)行數據的綁定,方法和(1)中的基本一樣

利用DetailsView 控件對數據執行增加,刪除,修改的操作

這樣通過(guò)存儲過(guò)程對數據操作就搞定了。
聯(lián)系客服