首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

Visual Studio .NET 整合開發 SQL Server 預存程序:建立、參數化、搭配 SqlDataAdapter/DataSet 提升效能

     編輯:關於SqlServer

Visual Studio .NET IDE 提供圖形化預存程序開發體驗,配合 ADO.NET SqlDataAdapter/DataSet 實現高效資料存取架構。

一、建立簡單預存程序 (無參數)

  1. 伺服器總管 → 展開 Pubs 資料庫 → 右鍵 [Stored Procedures] → [New Stored Procedure]。
  2. IDE 產生模板,修改為:
CREATE PROCEDURE dbo.up_GetPublisherInfo AS
SELECT pub_id, pub_name, city, state, country FROM publishers
RETURN
  1. 儲存 → 伺服器總管出現節點 → 右鍵 [Run Stored Procedure] 測試。

二、建立帶參數預存程序 (更新)

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
  • @ 前綴宣告參數,指定型別、長度。
  • 執行時 IDE 彈出參數輸入對話框,填入值即可測試。
  • OUTPUT 關鍵字可宣告輸出參數,回傳資訊給呼叫端。

三、ADO.NET 整合模式

// SqlDataAdapter 呼叫預存程序填充 DataSet
SqlDataAdapter da = new SqlDataAdapter("up_GetPublisherInfo", conn);
da.SelectCommand.CommandType = CommandType.StoredProcedure;
DataSet ds = new DataSet();
da.Fill(ds, "Publishers");

// 更新回寫
SqlCommandBuilder cb = new SqlCommandBuilder(da);
da.Update(ds, "Publishers");
  • CommandType.StoredProcedure 明確指定呼叫類型。
  • SqlCommandBuilder 自動產生 INSERT/UPDATE/DELETE 指令 (需單表、有主鍵)。
  • DataSet 離線架構:填充 → 記憶體修改 → 批次更新,減少資料庫往返。

四、預存程序優勢回顧

  • 標準元件化程式設計。
  • 編譯後執行計畫重用,速度快。
  • 減少網路流量 (僅傳呼叫指令)。
  • 安全機制:授權執行預存程序,不授權直接表存取。

總結

VS.NET IDE 降低預存程序開發門檻,ADO.NET SqlDataAdapter/DataSet 提供離線批次更新架構。兩者結合,實現「資料庫邏輯下沉、中介層輕量化、網路效能最佳化」的經典分層模式。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved