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

.NET 呼叫 SQL Server 2000 預存程序完整範例 (SqlCommand + SqlDataAdapter)

     編輯:關於SqlServer

無參數預存程序

// 假設: CREATE PROC SelectAll AS SELECT * FROM StudentInf
using (SqlConnection conn = new SqlConnection(connStr))
using (SqlCommand cmd = new SqlCommand("SelectAll", conn))
{
    cmd.CommandType = CommandType.StoredProcedure;
    conn.Open();

    // 直接執行 (無回傳結果集)
    cmd.ExecuteNonQuery();

    // 或填充 DataSet/DataTable
    using (SqlDataAdapter da = new SqlDataAdapter(cmd))
    {
        DataTable dt = new DataTable();
        da.Fill(dt);  // dt 現在包含結果集
    }
}

有參數預存程序

// 假設: CREATE PROC AndSelect @StudentId VARCHAR(10), @StudentName VARCHAR(10) AS ...
using (SqlConnection conn = new SqlConnection(connStr))
using (SqlCommand cmd = new SqlCommand("AndSelect", conn))
{
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.Parameters.Add("@StudentId", SqlDbType.NVarChar, 10).Value = "S001";
    cmd.Parameters.Add("@StudentName", SqlDbType.NVarChar, 10).Value = "John";
    conn.Open();

    using (SqlDataReader dr = cmd.ExecuteReader())
    {
        while (dr.Read())
        {
            Console.WriteLine(dr["StudentId"] + " - " + dr["StudentName"]);
        }
    }
}

單一參數簡寫

SqlParameter p = cmd.Parameters.Add("@StudentId", SqlDbType.NVarChar, 10);
p.Value = "S001";

關鍵點總結

  • CommandType = CommandType.StoredProcedure:告知 ADO.NET 這是預存程序名稱而非 SQL 文本。
  • Parameters.Add:指定參數名稱、SqlDbType、大小、值;Direction 預設 Input,輸出參數需設 ParameterDirection.Output。
  • SqlDataAdapter:自動開關連線、填充 DataSet/DataTable,適合離線資料操作。
  • SqlDataReader:唯讀、順向、低記憶體佔用,適合大量資料流式處理。
  • using 區塊:確保 Dispose() 被呼叫,釋放非受控資源 (連線、控制代碼)。

回傳值與輸出參數讀取

SqlParameter ret = cmd.Parameters.Add("RETURN_VALUE", SqlDbType.Int);
ret.Direction = ParameterDirection.ReturnValue;
cmd.ExecuteNonQuery();
int returnCode = (int)ret.Value;

掌握 SqlCommand 參數化呼叫模式,是 .NET 開發 SQL Server 應用的基石技能。

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