Lập trình C# (C Sharp)

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;