public bool InsertarCuestionario(List <Model.Cuestionario> oListCuestionario) { clsConnection oConnection = new clsConnection(); oConnection.OpenConnection(); using (SqlTransaction oSQLTRAN = oConnection.GetTransaction()) { try { SqlCommand oSQLC = new SqlCommand(""); oSQLC.Connection = oConnection.oCN; oSQLC.Transaction = oSQLTRAN; foreach (var oCuestionario in oListCuestionario) { oSQLC.CommandText = "INSERT INTO dbo.Cuestionario(TipoCuestionario, IDUsuario, Titulo, Descripcion, FechaInicio, FechaFinal) VALUES (@TipoCuestionario, @IDUsuario, @Titulo, @Descripcion, @FechaInicio, @FechaFinal); "; oSQLC.Parameters.AddWithValue("@TipoCuestionario", oCuestionario.TipoCustionario); oSQLC.Parameters.AddWithValue("@IDUsuario", oCuestionario.IDUsuario); oSQLC.Parameters.AddWithValue("@Titulo", oCuestionario.Titulo); oSQLC.Parameters.AddWithValue("@Descripcion", oCuestionario.Descripcion); oSQLC.Parameters.AddWithValue("@FechaInicio", oCuestionario.FechaInicio); oSQLC.Parameters.AddWithValue("@FechaFinal", oCuestionario.FechaFinal); oSQLC.ExecuteNonQuery(); oSQLC.Parameters.Clear(); //******************************************************************************************************************************************************/ List <Model.Pregunta> ListPregunta = oCuestionario.Pregunta.ToList(); for ( int i = 0; i < ListPregunta.Count; i++) { oSQLC.CommandText = "INSERT INTO dbo.Pregunta(IDPregunta, IDTipoPregunta, IDCuestionario, DescripcionPregunta) VALUES (@IDPregunta, @IDTipoPregunta, @@IDENTITY, @DescripcionPregunta); "; oSQLC.Parameters.AddWithValue("@IDPregunta", (i + 1)); oSQLC.Parameters.AddWithValue("@IDTipoPregunta", ListPregunta[i].IDTipoPregunta); oSQLC.Parameters.AddWithValue("@DescripcionPregunta", ListPregunta[i].DescripcionPregunta); oSQLC.ExecuteNonQuery(); oSQLC.Parameters.Clear(); List <Model.Opciones> ListaOpciones = ListPregunta[i].Opciones.ToList(); for (int j = 0; j < ListaOpciones.Count; j++) { oSQLC.CommandText = "INSERT INTO dbo.Opciones(IDOpcion, IDCuestionario, IDPregunta, DescripcionOpcion) VALUES(@IDOpcion, @@IDENTITY, @IDPregunta, @DescripcionOpcion); "; oSQLC.Parameters.AddWithValue("@IDOpcion", (j + 1)); oSQLC.Parameters.AddWithValue("@IDPregunta", (i + 1)); oSQLC.Parameters.AddWithValue("@DescripcionOpcion", ListaOpciones[j].DescripcionOpcion); oSQLC.ExecuteNonQuery(); oSQLC.Parameters.Clear(); } } } oSQLTRAN.Commit(); oConnection.oCN.Close(); return(true); } catch (Exception ex) { oSQLTRAN.Rollback(); oConnection.oCN.Close(); throw new Exception("Error al insertar cuestionarios", ex); } } }