Lập trình C# (C Sharp)
Constraint (Bài trước)

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@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 DirectionOutPut

param2.Direction = ParameterDirection.Output;
Đăng ký theo dõi ủng hộ kênh
Constraint (Bài trước)