Tạo Stored Procedure có tham số trả về trong SQL Server
Muốn Procedure trả về dữ liệu trong ham số, thì khi khai báo tham số thêm vào từ khóa ở cuối out, ví dụ:
PROCEDURE ProcedureName(@param1 varchar(50), @param2 int out)
AS
BEGIN
SET NOCOUNT ON;
---Các SQL-T khác
SET @param2 = 100 --gán giá trị cho tham số trả về
END
Procedure trên có 2 tham số là
@param1 và @param2, trong đó với @param2 sau khi thi hành có lưu kết quả trả vể.Sử dụng SqlCommand thi hành Procedure và đọc kết quả trả về từ tham số
Sử dụng
SqlCommand trong C# xem thêm tại: Truy vấn dữ liệu SQL Server với SqlCommand, ở đây sẽ viết thử code thi hành procedure vừa tạo ở trên và đọc kết quả trả về từ tham số:
SqlConnection connection;
//Cần khởi tạo connection trước
SqlCommand cmd = new SqlCommand("ProcedureName", connection);
cmd.CommandType = CommandType.StoredProcedure;
//Đưa tham số vào cmd
SqlParameter param1 = new SqlParameter("param1", SqlDbType.VarChar);
param1.Value = "ABC";
SqlParameter param2 = new SqlParameter("param2", SqlDbType.Int);
param2.Direction = ParameterDirection.Output;
param2.Value = 0;
cmd.Parameters.Add(param1);
cmd.Parameters.Add(param2);
//Thi hành ProcudeDure
connection.Open();
cmd.ExecuteNonQuery();
connection.Close();
//Đọc kết quả trả về
int Ketqua = (int)param2.Value;
Như vậy để lấy được tham số trả về từ procedure trên, cụ thể là ở tham số @param2, thi khi thêm tham số này vào SqlCommand nó phải được thiết lập Direction là OutPut
param2.Direction = ParameterDirection.Output;
