Hallo Leute
Folgendes Szenario:
Meine aspx application macht eine Transaction auf und versucht ein Update in der Datenbank. Nun wirft jedoch ein Trigger in der DB eine Exception und macht ein Rollback der Transaction, somit bekomme ich eine Weitere Exception wenn ich myTrans.Rollback aufrufe (myTrans ist nicht NULL zu diesem Zeitpunkt). Ich möcht nun gerne wissen wie ich überprüfen kann ob die Transation die ich in .NET gestartet habe auf der DB auch wirklich noch aktive ist um diese Situation zu verhinder (Nein ich möchte nicht ein zweites Catch machen)
hier noch ein code snipset
SqlTransaction trans = null;
try
{
mapFieldsForUpdate(dataRow);
trans = this.connextion.BeginTransaction();
this.updateCmdSubject.Transaction = trans;
this.updateCmdLocation.Transaction = trans;
int i = this.updateCmdSubject.ExecuteNonQuery();
int j = this.updateCmdLocation.ExecuteNonQuery();
if(i == 0)
{
throw new HRISystemException(Constants.EX_NO_ROW_AFFECTED_SUBJECT);
}
else if(j == 0)
{
throw new HRISystemException(Constants.EX_NO_ROW_AFFECTED_LOCATION);
}
trans.Commit();
mailNotification(dr, OPERATION_UPDATE);
}
catch(HRISystemException e)
{
trans.Rollback();
}