CREATE PROCEDURE AddMethod
@returnvalue int OUTPUT,
@Parameter_1 int,
@Parameter_2 int
AS
SET @returnvalue = @Parameter_1 + @Parameter_2
RETURN @returnvalue
GO
private int TestProcedure()
{
Random rnd = new Random();
string connStr = "Data Source=localhost;Initial Catalog=testdb;User ID=sa;Password=sa;Connect Timeout=3000";
using (SqlConnection conn = new SqlConnection(connStr))
{
conn.Open();
SqlCommand cmd = new SqlCommand("AddMethod", conn) { CommandType = CommandType.StoredProcedure };
SqlParameter p1 = new SqlParameter("@Parameter_1", SqlDbType.Int) { Direction = ParameterDirection.Input, Value = rnd.Next(100) };
SqlParameter p2 = new SqlParameter("@Parameter_2", SqlDbType.Int) { Direction = ParameterDirection.Input, Value = rnd.Next(100) };
SqlParameter ret = new SqlParameter("@returnvalue", SqlDbType.Int) { Direction = ParameterDirection.Output };
cmd.Parameters.Add(ret);
cmd.Parameters.Add(p1);
cmd.Parameters.Add(p2);
cmd.ExecuteNonQuery();
return (int)ret.Value;
}
}
Direction = ParameterDirection.Output 表示輸出參數。ExecuteNonQuery 執行後,ret.Value 即為預存程序設定的回傳值。using 確保連線關閉釋放。下一篇將介紹透過 C# 執行 SQL Server DTS 封裝的方法。