User1873694115 posted
It is Oracle DB... I throw the Exception but rollback doesn't work 
Any Ideas? 
public void SaveDay(int userID, Day day)
{
if (day == null)
{
return;
}
OracleConnection connection = null;
OracleCommand oracleCommand = null;
OracleTransaction transaction = null;
try
{
connection = GetConnection();
connection.Open();
transaction = connection.BeginTransaction();
foreach (ProjectActivity activity in day.ProjectActivities)
{
oracleCommand = new OracleCommand("SAVEPROJECTACTIVITY", connection);
oracleCommand.CommandType = System.Data.CommandType.StoredProcedure;
oracleCommand.Parameters.Add(new OracleParameter("PARAM_USERID", userID));
oracleCommand.Parameters.Add(new OracleParameter("PARAM_MONTHNUBMER", activity.MonthNumber));
oracleCommand.Parameters.Add(new OracleParameter("PARAM_YEAR", activity.Year));
int parameterType = 0;
OracleParameter outputParameter = new OracleParameter("PARAM_OUT_PROJECT_ACTIVITY_ID", parameterType);
outputParameter.Direction = System.Data.ParameterDirection.Output;
oracleCommand.Parameters.Add(outputParameter);
oracleCommand.Transaction = transaction;
oracleCommand.ExecuteNonQuery();
throw new Exception();
}
transaction.Commit();
}
catch (Exception exception)
{
transaction.Rollback();
}
finally
{
connection.Dispose();
oracleCommand.Dispose();
}