程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQL存儲過程在.NET數據庫中的應用

SQL存儲過程在.NET數據庫中的應用

編輯:關於SqlServer

    本文作者將向大家介紹如何運用Visual Studio.NET IDE來創建存儲過程和.NET數據庫應用程序中存儲過程的應用,以及如何將它與ADO.NET中的SqlDataAdapter對象、DataSet對象等結合使用以提高.NET數據庫應用程序的總體性能。

一.前言

存儲過程(Stored Procedure)是一組為了完成特定功能的SQL語句集,經編譯後存儲在數據庫中。用戶通過指定存儲過程的名字並給出參數(如果該存儲過程帶有參數)來執行它。存儲過程是數據庫中的一個重要對象,任何一個設計良好的數據庫應用程序都應該用到存儲過程。總的來說,存儲過程具有以下一些優點:

◆存儲過程允許標准組件式編程。

◆存儲過程能夠實現較快的執行速度。

◆存儲過程能夠減少網絡流量。

◆存儲過程可被作為一種安全機制來充分利用。

本文作者將向大家介紹.NET數據庫應用程序中存儲過程的應用,以及如何將它與ADO.NET中的SqlDataAdapter對象、DataSet對象等結合使用以提高.NET數據庫應用程序的總體性能。

二.系統要求

開發工具:Visual Studio.NET

數據庫管理系統:SQL Server 2000(其中包含了示例程序所用到的Pubs數據庫)

三.創建一個簡單的存儲過程

這裡我將向大家介紹如何運用Visual Studio.NET IDE來創建存儲過程。運用Visual Studio.NET IDE創建存儲過程是非常容易和直觀的,你只要在服務器資源管理器中導向到Pubs數據庫並展開節點,就會發現包括存儲過程在內的各種數據庫對象。

在存儲過程節點上點擊右鍵便可彈出一個菜單,其中包含了“新建存儲過程”的命令。新建一個存儲過程後,IDE中的代碼編輯窗口便出現如下所示的代碼模板:

CREATE PROCEDURE dbo.StoredProcedure1
/*
(
@parameter1 datatype = default value,
@parameter2 datatype OUTPUT )
*/
AS
/* SET NOCOUNT ON */
RETURN
上面的代碼模板符合簡化的創建存儲過程的語法規則,完整的語法規則如下:
CREATE PROC [ EDURE ] procedure_name [ ; number ]
[ { @parameter data_type }
[ VARYING ] [ = default ] [ OUTPUT ]
] [ ,...n ]
[ WITH
{ RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } ]
[ FOR REPLICATION ]
AS sql_statement [ ...n ]

限於篇幅,各個參數的含義在此就不多作介紹了,有興趣的讀者可以參考有關SQL Server 2000數據庫管理系統的資料。

下面我對該代碼模板中的各個語法成分略作介紹。CREATE PROCEDURE聲明創建一個存儲過程,後面跟著該存儲過程的名稱。“/*……*/”中的成分是該存儲過程的參數,可包括輸入參數和輸出參數。AS關鍵字後面的內容是該存儲過程的主體部分,其中是任何數量和類型的包含在存儲過程中的SQL語句。RETURN關鍵字表明存儲過程結束並能返回整型狀態值給調用者。下面我們就來創建一個簡單的不帶參數的存儲過程並運用之:

CREATE PROCEDURE dbo.up_GetPublisherInfo
AS
SELECT pub_id, pub_name, city, state, country
FROM publishers
RETURN

創建以上存儲過程後,保存之。保存完畢,與該存儲過程相對應的節點就會出現在服務器資源管理器中。同時請注意代碼編輯窗口中的CREATE關鍵字變為ALTER關鍵字了,該關鍵字是用於更改任何現有的存儲過程的。要運行上述存儲過程,只要點擊其節點並在右鍵彈出菜單中選擇“運行存儲過程”。

四.創建一個帶參數的存儲過程

以上我們創建了一個簡單的不帶參數的存儲過程,而在實際的應用中往往會用到很多帶有參數的存儲過程。帶有參數的存儲過程一般是用於更新數據或是插入數據的。下面我們可以運用同樣的操作方法創建一個帶參數的存儲過程:

CREATE PROCEDURE dbo.up_UpdatePublisherInfo
(
@pub_id char (4),
@pub_name varchar (40),
@city varchar (20),
@state char (2),
@country varchar (30)
)
AS
UPDATE publishers
SET pub_name = @pub_name, city = @city, state = @state,
  country = @country
WHERE ( pub_id = @pub_id )
RETURN

在上面的創建存儲過程的代碼中,我們通過在名稱前添加一個“@”標志來聲明存儲過程的局部變量-參數,同時還聲明了各個參數的類型,確定了各個參數的方向值,也即表明該參數是輸入型的還是輸出型的或者是輸入輸出型的或者是返回值型的。用戶通過相應的存儲過程名稱以及正確有效的參數便可調用該存儲過程了。還有,你可以通過運用OUTPUT關鍵字在參數中添加輸出型的參數,具體方法請參考上面的語法規則。輸出型的參數能返回給調用者相關的信息。

上面的存儲過程能更新publishers表中相應出版商的信息。你可以通過點擊該存儲過程的節點,在右鍵彈出菜單中選擇“運行存儲過程”來執行它。一旦執行,IDE中便彈出一個輸入出版商信息的對話框。在該對話框中填入正確有效的更新信息,注意pub_id的值在原來的表中必須存在,然後點擊“確定”按鈕便可更新數據了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved