public int insertarAlumno(CNPeticionesAlumnos entityAlumno, List <CNPeticionesTutoresAlumnos> entityTutoresAlumnos) { try { CDAlumnos alumno = new CDAlumnos() { Nombre = entityAlumno.Nombre, Apellidos = entityAlumno.Apellidos, FechaNacimiento = entityAlumno.FechaNacimiento, Direccion = entityAlumno.Direccion, CodEstudiante = entityAlumno.CodEstudiante }; List <CDTutoresAlumnos> listaTutoresAlumnos = new List <CDTutoresAlumnos>(); foreach (CNPeticionesTutoresAlumnos tutorAlumno in entityTutoresAlumnos) { CDTutoresAlumnos entityTutorAlumno = new CDTutoresAlumnos() { IdTutor = tutorAlumno.IdTutor, Parentesco = tutorAlumno.Parentesco }; listaTutoresAlumnos.Add(entityTutorAlumno); } return(_CDRAlumnos.InsertarAlumno(alumno, listaTutoresAlumnos)); } catch (Exception ex) { throw ex; } }
public int InsertarAlumno(CDAlumnos entityAlumno, List <CDTutoresAlumnos> entityTutoresAlumnos) { try { using (var connection = GetConnection()) { connection.Open(); using (var command = new SqlCommand()) { SqlTransaction transaction; // iniciar transaccion transaction = connection.BeginTransaction("trx"); command.Connection = connection; command.Transaction = transaction; try { int lineasAfectadas = 0; string err = ""; command.CommandText = "spAlumnoInsert"; command.CommandType = CommandType.StoredProcedure; command.Parameters.AddWithValue("@Nombre", entityAlumno.Nombre); command.Parameters.AddWithValue("@Apellidos", entityAlumno.Apellidos); command.Parameters.AddWithValue("@FechaNacimiento", entityAlumno.FechaNacimiento); command.Parameters.AddWithValue("@Direccion", entityAlumno.Direccion); command.Parameters.AddWithValue("@CodEstudiante", entityAlumno.CodEstudiante); command.Parameters.Add("@IdAlumno", SqlDbType.Int); command.Parameters["@IdAlumno"].Direction = ParameterDirection.Output; int result = command.ExecuteNonQuery(); int idAlumno = 0; if (result == 1) { idAlumno = int.Parse(command.Parameters["@IdAlumno"].Value.ToString()); command.Parameters.Clear(); command.CommandText = ""; lineasAfectadas++; foreach (CDTutoresAlumnos tutorAlumno in entityTutoresAlumnos) { command.CommandText = "spTutoresAlumnosInsert"; command.CommandType = CommandType.StoredProcedure; command.Parameters.AddWithValue("@IdTutor", tutorAlumno.IdTutor); command.Parameters.AddWithValue("@IdAlumno", idAlumno); command.Parameters.AddWithValue("@Parentesco", tutorAlumno.Parentesco); int r = command.ExecuteNonQuery(); command.Parameters.Clear(); command.CommandText = ""; if (r == 1) { lineasAfectadas++; } else { err += "\nerror en spTutoresAlumnosInsert"; } } transaction.Commit(); } else { transaction.Rollback(); err += "\nerror en spTutoresAlumnosInsert"; } if (err != "") { System.Windows.Forms.MessageBox.Show(err, "Error", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); return(-1); } return(lineasAfectadas); } catch (Exception ex2) { System.Windows.Forms.MessageBox.Show(ex2.Message, "Error en la transaccion", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); try { transaction.Rollback(); } catch (Exception ex3) { System.Windows.Forms.MessageBox.Show(ex3.Message, "Error al hacer el rollback", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); throw ex3; } throw ex2; } } } } catch (Exception ex) { throw ex; } }