Archive for April, 2009

ASP.NET 에서 StoredProcedure 트랜잭션 걸기

이번에 작업하면서 처음 알게된 내용.

.NET에서 Stored Procedure를 호출할때 로컬 트랜잭션을 걸어서 RollBack/Commit가 가능하다.

SQLConnection 에서 transaction을 생성해서,
Command에 연결해주면 끝.

주의할 점은 실제 SP를 콜하는 부분에
cmd.Transaction = tran; 같이 꼭! 적어줘야 한다.

이부분을 빼먹어서 LocalTransaction 에 대한 에러가 발생하는데, 디버깅이 힘든 환경이라서 좀 애먹은 일이..

간단히 클래스를 만들어서 쓰면 나름 괜찮은 듯


private class TranDB

{ private SqlConnection con; private SqlTransaction tran; static string tranName = "WEBTRAN"; public string msg; public TranDB(string connectionStr) { con = new SqlConnection(connectionStr); } public void Open() { con.Open(); } public void Close() { con.Close(); } public void BeginTran() { tran = con.BeginTransaction(tranName); } public void RollBack() { tran.Rollback(tranName); } public void Commit() { tran.Commit(); }
}

Tags:

Comments