簡(jiǎn)單實(shí)現(xiàn)linq存儲(chǔ)過(guò)程基本操作
linq存儲(chǔ)過(guò)程的運(yùn)用還是比較廣泛的,如果想運(yùn)用好linq語(yǔ)言,那linq存儲(chǔ)過(guò)程是必不可少的。
本篇,關(guān)注的是linq存儲(chǔ)過(guò)程來(lái)完成數(shù)據(jù)庫(kù)的四步操作(查詢,刪除,更新,新增)。
數(shù)據(jù)庫(kù)仍然是Northwind,數(shù)據(jù)源是表Customers
1). 首先創(chuàng)建一個(gè)網(wǎng)站,添加Linq to Sql類,名稱為Northwind.dbml;
2). 打開(kāi)Visual Studio的服務(wù)器資源管理器,選擇數(shù)據(jù)連接-添加連接,引入Northwind數(shù)據(jù)庫(kù),展開(kāi),將Customers表拖到Northwind.dbml,這樣就完成了創(chuàng)建Customers對(duì)象;
3). 創(chuàng)建查詢,刪除,更新,新增 Customers 的linq存儲(chǔ)過(guò)程,代碼如下:
linq存儲(chǔ)過(guò)程之查詢Customers
- Procedure Name: [dbo].[selCustomers]
- Note : get Customers
- Created By : Tom
- Created Date : 2008-5-28
- CREATE PROCEDURE [dbo].[selCustomers]
- (
- @ncCoustomerID NVARCHAR(5) = NULL,
- @nvcCountry NVARCHAR(15) = NULL
- AS
- IF @ncCoustomerID IS NULL OR @ncCoustomerID = ''
- SET @ncCoustomerID = NULL
- IF @nvcCountry IS NULL OR @nvcCountry = ''
- SET @nvcCountry = NULL
- SELECT *
- FROM CUSTOMERS
- WHERE CUSTOMERID LIKE ISNULL(@ncCoustomerID, '%')
- AND COUNTRY LIKE ISNULL(@nvcCountry, '%')
- RETURN
linq存儲(chǔ)過(guò)程之刪除Customers
- Procedure Name : [dbo].[delCustomers]
- Note : delete Customer
- Created By : Tom
- Created Date : 2008-5-28
- CREATE PROCEDURE [dbo].[delCustomers]
- (
- @ncCustomerID NCHAR(5)
- )
- AS
- DELETE CUSTOMERS
- WHERE CUSTOMERID = @ncCUSTOMERID
- RETURN
linq存儲(chǔ)過(guò)程之更新Customer
- Procedure Name : [dbo].[updCustomers]
- Note : modify Customer
- Created By : Tom
- Created Date : 2008-5-28
- CREATE PROCEDURE [dbo].[updCustomers]
- (
- @ncCustomerID NCHAR(5),
- @nvcCompanyName NVARCHAR(40),
- @nvcAddress NVARCHAR(60),
- @intReturnValue INT OUTPUT
- )
- AS
- --不返回受影響的行
- SET NOCOUNT ON
- --更新指定的Customers
- UPDATE CUSTOMERS
- SET COMPANYNAME = @nvcCompanyName,
- ADDRESS = @nvcAddress
- WHERE CUSTOMERID = @ncCustomerID
- IF @@ERROR <> 0
- BEGIN
- --如果更新發(fā)生異常,返回-1
- SET @intReturnValue = -1
- RETURN
- END
- RETURN
linq存儲(chǔ)過(guò)程之新增Customer
- Procedure Name : [dbo].[updCustomers]
- Note : modify Customer
- Created By : Tom
- Created Date : 2008-5-28
- CREATE PROCEDURE [dbo].[updCustomers]
- (
- @ncCustomerID NCHAR(5),
- @nvcCompanyName NVARCHAR(40),
- @nvcAddress NVARCHAR(60),
- @intReturnValue INT OUTPUT
- )
- AS
- --不返回受影響的行
- SET NOCOUNT ON
- --更新指定的Customers
- UPDATE CUSTOMERS
- SET COMPANYNAME = @nvcCompanyName,
- ADDRESS = @nvcAddress
- WHERE CUSTOMERID = @ncCustomerID
- IF @@ERROR <> 0
- BEGIN
- --如果更新發(fā)生異常,返回-1
- SET @intReturnValue = -1
- RETURN
- END
- RETURN
4). 打開(kāi)Visual Studio2008的服務(wù)器資源管理器,展開(kāi)Northwind數(shù)據(jù)庫(kù)的linq存儲(chǔ)過(guò)程目錄,將上敘四個(gè)存儲(chǔ)過(guò)程依次拖入到打開(kāi)的Northwind.dbml右側(cè)方法區(qū),查看引入的四個(gè)linq存儲(chǔ)過(guò)程的屬性,修改其Name名為"GetCustomers","DeleteCustomers","UpdateCustomers","InsertCustomers",如下圖所示:
四個(gè)linq存儲(chǔ)過(guò)程的屬性
【編輯推薦】