protected void Update(Plan plan) { MySqlTransaction transaction = null; try { //Para hacerlo mas simple, borramos las materias que tenia antes el plan e insertamos las que va a tener ahora this.OpenConnection(); transaction = MySqlConn.BeginTransaction(); MateriaAdapter ma = new MateriaAdapter(); ma.DeleteMateriasPlan(plan.Id, transaction); foreach (Materia m in plan.ListaMaterias) { m.IdPlan = plan.Id; MateriaAdapter materiaData = new MateriaAdapter(); materiaData.Save(m, transaction); } MySqlCommand cmd = new MySqlCommand("UPDATE planes SET desc_plan = @desc_plan, id_especialidad = @id_especialidad WHERE id_plan = @ID", transaction.Connection); cmd.Parameters.AddWithValue("@desc_plan", plan.Descripcion); cmd.Parameters.AddWithValue("@id_especialidad", plan.IdEspecialidad); cmd.Parameters.AddWithValue("@ID", plan.Id); cmd.ExecuteNonQuery(); } catch (Exception Ex) { transaction.Rollback(); throw new UpdateException("plan", Ex); } try { transaction.Commit(); } catch (Exception Ex) { transaction.Rollback(); throw new UpdateException("plan", Ex); } finally { transaction.Dispose(); this.CloseConnection(); } }
protected void Insert(Plan plan) { MySqlTransaction transaction = null; //Guardamos el plan try { this.OpenConnection(); transaction = MySqlConn.BeginTransaction(); MySqlCommand cmd = new MySqlCommand("INSERT INTO planes (desc_plan, id_especialidad)" + "VALUES (@desc_plan, @id_especialidad); SELECT @@IDENTITY AS ID", transaction.Connection); cmd.Parameters.AddWithValue("@desc_plan", plan.Descripcion); cmd.Parameters.AddWithValue("@id_especialidad", plan.IdEspecialidad); //Recuperamos el ID para ponerlo en la materia plan.Id = Convert.ToInt32(cmd.ExecuteScalar().ToString()); //Guardamos las materias foreach (Materia m in plan.ListaMaterias) { m.IdPlan = plan.Id; MateriaAdapter materiaData = new MateriaAdapter(); materiaData.Save(m, transaction); } } catch (Exception Ex) { transaction.Rollback(); throw new InsertException("plan", Ex); } try { transaction.Commit(); } catch (Exception ex) { Exception handledException = new Exception("Error al guardar los cambios:", ex); transaction.Rollback(); throw ex; } finally { transaction.Dispose(); CloseConnection(); } }
public void Save(Materia materia) { _MateriaData.Save(materia); }