protected void Update(Curso curso, DocenteCurso titular, DocenteCurso auxiliar) { DocenteCursoAdapter docenteCursoData = new DocenteCursoAdapter(); try { OpenConnection(); SqlTransaction transaction = SqlConn.BeginTransaction(); SqlCommand cmdUpdate; try { cmdUpdate = new SqlCommand( "UPDATE cursos SET id_materia=@id_materia,id_comision=@id_comision," + "anio_calendario=@anio_calendario,cupo=@cupo " + "WHERE id_curso=@id", SqlConn, transaction); cmdUpdate.Parameters.Add("@id", SqlDbType.Int).Value = curso.ID; CargarParametrosSql(cmdUpdate, curso); cmdUpdate.ExecuteNonQuery(); cmdUpdate = new SqlCommand( "UPDATE docentes_cursos SET id_curso=@id_curso,id_docente=@id_docente," + "cargo=@cargo WHERE id_dictado=@id", SqlConn, transaction); cmdUpdate.Parameters.Add("@id", SqlDbType.Int).Value = titular.ID; docenteCursoData.CargarParametrosSql(cmdUpdate, titular); cmdUpdate.ExecuteNonQuery(); if (auxiliar != null) { switch (auxiliar.State) { case BusinessEntity.States.New: auxiliar.IdCurso = curso.ID; cmdUpdate = new SqlCommand( "INSERT INTO docentes_cursos(id_curso,id_docente,cargo)" + "VALUES (@id_curso,@id_docente,@cargo)" + "SELECT @@identity", SqlConn, transaction); docenteCursoData.CargarParametrosSql(cmdUpdate, auxiliar); auxiliar.ID = decimal.ToInt32((decimal)cmdUpdate.ExecuteScalar()); break; case BusinessEntity.States.Modified: cmdUpdate = new SqlCommand( "UPDATE docentes_cursos SET id_curso=@id_curso,id_docente=@id_docente," + "cargo=@cargo WHERE id_dictado=@id", SqlConn, transaction); cmdUpdate.Parameters.Add("@id", SqlDbType.Int).Value = auxiliar.ID; docenteCursoData.CargarParametrosSql(cmdUpdate, auxiliar); cmdUpdate.ExecuteNonQuery(); break; case BusinessEntity.States.Deleted: cmdUpdate = new SqlCommand("DELETE docentes_cursos WHERE id_dictado=@id", SqlConn, transaction); cmdUpdate.Parameters.Add("@id", SqlDbType.Int).Value = auxiliar.ID; cmdUpdate.ExecuteNonQuery(); break; } } transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); Exception ExcepcionManejada = new Exception("Error al insertar curso", ex); throw ExcepcionManejada; } } catch (Exception) { throw; } finally { CloseConnection(); } }
protected void Insert(Curso curso, DocenteCurso titular, DocenteCurso auxiliar) { DocenteCursoAdapter docenteCursoData = new DocenteCursoAdapter(); try { OpenConnection(); SqlTransaction transaction = SqlConn.BeginTransaction(); SqlCommand cmdInsert; try { cmdInsert = new SqlCommand( "INSERT INTO cursos(id_materia,id_comision,anio_calendario,cupo)" + "VALUES (@id_materia,@id_comision,@anio_calendario,@cupo)" + "SELECT @@identity", // Esta última línea es para recuperar el ID autogenerado desde la bd. SqlConn, transaction); CargarParametrosSql(cmdInsert, curso); // Se obtiene el ID autogenerado y se lo guarda a la entidad. curso.ID = decimal.ToInt32((decimal)cmdInsert.ExecuteScalar()); titular.IdCurso = curso.ID; cmdInsert = new SqlCommand( "INSERT INTO docentes_cursos(id_curso,id_docente,cargo)" + "VALUES (@id_curso,@id_docente,@cargo)" + "SELECT @@identity", // Esta última línea es para recuperar el ID autogenerado desde la bd. SqlConn, transaction); docenteCursoData.CargarParametrosSql(cmdInsert, titular); // Se obtiene el ID autogenerado y se lo guarda a la entidad. titular.ID = decimal.ToInt32((decimal)cmdInsert.ExecuteScalar()); if (auxiliar != null) { auxiliar.IdCurso = curso.ID; cmdInsert = new SqlCommand( "INSERT INTO docentes_cursos(id_curso,id_docente,cargo)" + "VALUES (@id_curso,@id_docente,@cargo)" + "SELECT @@identity", // Esta última línea es para recuperar el ID autogenerado desde la bd. SqlConn, transaction); docenteCursoData.CargarParametrosSql(cmdInsert, auxiliar); // Se obtiene el ID autogenerado y se lo guarda a la entidad. auxiliar.ID = decimal.ToInt32((decimal)cmdInsert.ExecuteScalar()); } transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); Exception ExcepcionManejada = new Exception("Error al insertar curso", ex); throw ExcepcionManejada; } } catch (Exception) { throw; } finally { CloseConnection(); } }