31/12/2021 | 02:27 AM

Hướng dẫn sử dụng giao tác Transaction trong mô hình N-Tier của Vinasynet

Xem: 412
(LTC) Hướng dẫn sử dụng giao tác Transaction trong mô hình N-Tier của Vinasynet

Hướng dẫn sử dụng giao tác Transaction trong mô hình N-Tier của Vinasynet

//b1: Khởi tạo đối tượng SqlDataProvider
SqlProvider sqlDPL = new SqlProvider();
//b2: Khởi tạo giao tác: 
// - true khởi tạo thành công;
// - false khởi tạo không thành công
if (sqlDPL.BeginTransaction())
{
try
{
//sử dụng các phương thực phù hợp với Transaction
//phương thức phù hợp với giao tác là các phương thức không khởi tạo đối tượng SqlDataProvider
//xem đoạn mã nguồn thứ 2 của hàm InsertTransaction
long newId = InsertTransaction(sqlDPL, entity);
if (newId > 0)
{
DoituongDemoDAL pvDAL = new DoituongDemoDAL();
//code thực hiện các nhiệm vụ
pvDAL.Dispose();
//nếu thực hiện thành công thì commit
sqlDPL.CommitTrantraction();
sqlDPL.Dispose();
return newId;
}
else
throw new Exception("ERROR"); //nén lỗi
}
catch(Exception ex)
{
//trường hợp gặp lỗi, bất kỳ lỗi nào cũng thực hiện Rollback
sqlDPL.RollbackTrantraction();
sqlDPL.Dispose();
throw new Exception(ex.Message);
}
}
else
throw new Exception("TRANSACTION_ERROR");

2. Hàm chức năng phù hợp với Transaction


public virtual long InsertTransaction(SqlProvider sqlDPL, DoituongDemoEntity entity)
{
try
{
string spName = "";
//create params
List<SqlParameter> param = GetParameter(entity);
//execute
long newId = Convert.ToInt64(sqlDPL.ExecuteTransaction(spName, CommandType.StoredProcedure, param.ToArray()));
return newId;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
Xem: 412

Các bài viết khác

Loading ...