트랜잭션 기간 동안 (동일한) SQL 연결을 열어 두어야하며 BeginTransaction을 호출 한 것과 동일한 연결에서 CommitTransaction 및 RollbackTransaction을 호출해야합니다.SQL 연결 및 트랜잭션
우리는 등 commit- 및 rollbacktransactions뿐만 아니라 일반적인 선택을 begin-하는 방법과 데이터베이스 헬퍼 클래스, 저장 실행 시저를 가지고
도우미 클래스는 다음과 같이 다소 같습니다
public class DatabaseHelper
{
public void BeginTransaction()
{
// open connection, but dont close it.
}
public void CommitTransaction()
{
// close the connection
}
public void RollbackTransaction()
{
// close the connection
}
는 그래서 이것을 우리는 이와 같은 (I 선호했습니다 것이다) 일반적인 작업을 수행 할 수 없기 때문에
:
using (sqlCon = new SqlConnection(connectionString))
{
// sql operations here
}
는 헬퍼 클래스는 현재 연결을 잎 기존 트랜잭션이있는 한 열어서 커밋 또는 롤백 중에 닫습니다. 그러나 그것이 정말로 그것을 할 수있는 가장 좋은 방법인지 궁금합니까? 거래가 진행되는 동안 연결이 열려 있어야합니까?
? BeginTransaction은 최소한 Commit 메소드로 전달할 트랜잭션을 반환해야합니다! –
그래, 나도 맘에 안들지만, 다른 사람이 작성한 기존 생산 코드를 수정하고 있으므로, 이미 테스트되고 "작동 중"인 것을 가능한 한 적게 변경하려고합니다. – Ghlouw