여러 삽입 및 업데이트 쿼리에 단일 함수로 트랜잭션을 사용할 수 있습니까? 예 :여러 SQL 쿼리에 트랜잭션 적용
private void button1_Click(object sender, EventArgs e)
{
// transaction
SqlConnection objConnection = new SqlConnection(annual_examination_system.Properties.Settings.Default.connString);
SqlTransaction objTransaction = null;
int count = 0;
try
{
objConnection.Open();
objTransaction = objConnection.BeginTransaction();
string q1 = "update query"
SqlCommand objCommand1 = new SqlCommand(q1, objConnection, objTransaction);
objCommand1.ExecuteNonQuery();
objTransaction.Commit();
string q2 = "insert query"
SqlCommand objCommand1 = new SqlCommand(q2, objConnection, objTransaction);
objCommand1.ExecuteNonQuery();
objTransaction.Commit();
}
catch (Exception ex)
{
objTransaction.Rollback();
MessageBox.Show(ex.Message);
MessageBox.Show("Exception, Row :" + count);
MessageBox.Show("Transaction Rollback.");
}
finally
{
// Close the connection.
if (objConnection.State == ConnectionState.Open)
{
objConnection.Close();
}
}
이제는 업데이트 용이고 삽입 용인 두 가지 쿼리가 있습니다. 그래서 그들에게 개별적으로 거래를 적용해야합니까 아니면 하나의 거래가 양쪽 모두에 적용될 수 있습니까?
'update'와'insert' 둘 다 커밋되거나 단일 트랜잭션으로 롤백 될 필요가 있다면 마지막'ExecuteNonQuery' 다음에'commit' 만 사용하십시오. – Serg
나는 그것을 시도했다. 그러나 그것은 시간 초과가 만료되었다. –