메소드가 실패 할 경우 MySQL 트랜잭션을 사용하여 변경 사항을 롤백하고 싶습니다. StackOverflow : MySql and inserting last ID problem remains에서이 예제를 언급했지만 내 문제는 조금 다릅니다.두 가지 방법으로 MySQL 변환 처리하기
나는 아래와 같은 코드가 있습니다
private void btnSave_Click(object sender, EventArgs e)
{
btnSave.Enabled = false;
int result1 = SaveBillDetails();
int result2 = SaveBillItems();
if ((result1 == 1) && (result2 == 1))
{
//Update old stock
UpdateStock.ReduceStock(Convert.ToInt32(txtBillNo.Text), Convert.ToDateTime(dtpBillDate.Text));
MessageBox.Show("Saved", "StockApp", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
btnSave.Enabled = true;
}
내가 들어 BeginTransaction 같은 것을 호출 할 단지 SaveBillItems SaveBillDetails 전 가 호출됩니다. 이 두 가지 방법 모두 트랜잭션을 사용하지 않습니다. 위 코드에 트랜잭션을 추가하기 만하면됩니다.
무엇이 문제입니까? 와나 코드 스타일 질문? – Reniuz
두 가지 방법 모두 독립적 인 데이터 액세스 클래스를 사용한다는 점에서 문제가 있습니다. 세 가지 방법 모두를 병합합니다. SaveBillDetails, SaveBillItems 및 ReduceStock는 시간이 많이 소요되는 작업입니다. 위 코드에 BeginTransaction을 추가하면 내 질문에 게시 한 링크에 표시된 코드를 사용하지 않으면 트랜잭션을 시작하지 않는다고 가정합니다. – RKh