在 SQL Server 預存程序中使用 OUTPUT 參數可將值回傳給呼叫端。ASP.NET 需正確設定 SqlParameter.Direction = ParameterDirection.Output 並在執行後讀取參數值。
CREATE PROCEDURE GetMessage
@Result VARCHAR(100) OUTPUT
AS
BEGIN
SET @Result = '來自預存程序的訊息'
END
using (SqlConnection conn = new SqlConnection(connStr))
using (SqlCommand cmd = new SqlCommand("GetMessage", conn))
{
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter outParam = new SqlParameter("@Result", SqlDbType.VarChar, 100);
outParam.Direction = ParameterDirection.Output;
cmd.Parameters.Add(outParam);
conn.Open();
cmd.ExecuteNonQuery();
string result = outParam.Value.ToString();
// 顯示 result...
}
CREATE PROCEDURE GetMessageSimple
AS
SELECT '來自預存程序的訊息' AS Msg
前端直接 cmd.ExecuteReader() 讀取,程式碼更簡潔,適用於單一結果集情境。