private string LlenarTablas() { // pone un using al principio de la pág y es más fácil PreguntasTableAdapter daPreguntas = new PreguntasTableAdapter(); RespuestasTableAdapter daRespuestas = new RespuestasTableAdapter(); RespNoValidasTableAdapter daResNoValidas = new RespNoValidasTableAdapter(); // Llenamos las tablas del DataSet con la info de la BD filtrada por el adaptador // Asegurarse de que los datos se puedan traer try { daPreguntas.Fill(dsSerONoSer.Preguntas); daRespuestas.Fill(dsSerONoSer.Respuestas); daResNoValidas.Fill(dsSerONoSer.RespNoValidas); } catch (Exception e) { return($" No se puede conectar con la base de datos 'Ser o no ser'.\n{e.Message}"); } return(""); }
private string LLenarTablas() { string error = ""; List <String> preguntasSin12Respuestas = new List <String>(); List <String> preguntasSin8Acertadas4Erroneas = new List <String>(); List <String> nivelesInferioresAlMaximo = new List <String>(); // Importamos -> using CapaDatosDSet.DsEstadoTableAdapters; PreguntasTableAdapter daPreguntas = new PreguntasTableAdapter(); RespuestasTableAdapter daRespuestas = new RespuestasTableAdapter(); RespNoValidasTableAdapter daRespNoValidas = new RespNoValidasTableAdapter(); try { // LLenamos tablas si se puede acceder a la base de datos. daPreguntas.Fill(dsSerONoSer.Preguntas); daRespuestas.Fill(dsSerONoSer.Respuestas); daRespNoValidas.Fill(dsSerONoSer.RespNoValidas); if (dsSerONoSer.Preguntas.Count == 0) { return("No hay preguntas\npóngase en contacto con su administrador@"); } maxNivel = dsSerONoSer.Preguntas.Max(drPreguntas => drPreguntas.Nivel); bool[] niveles = new bool[maxNivel]; foreach (var drPregunta in dsSerONoSer.Preguntas) { int respValidas = 0; int respNoValidas = 0; foreach (RespuestasRow drRespuesta in drPregunta.GetRespuestasRows()) { if (drRespuesta.Valida) { respValidas++; } else { respNoValidas++; } } int respTotales = respValidas + respNoValidas; if (respTotales != 12) { preguntasSin12Respuestas.Add(drPregunta.NumPregunta.ToString()); } if (respValidas != 8 || respNoValidas != 4) { preguntasSin8Acertadas4Erroneas.Add(drPregunta.NumPregunta.ToString()); } niveles[drPregunta.Nivel - 1] = true; } for (int i = 0; i < maxNivel; i++) { if (!niveles[i]) { nivelesInferioresAlMaximo.Add((i + 1).ToString()); } } } catch (Exception e) { return(e.Message); } if (preguntasSin12Respuestas.Count > 0) { error += "Pregunta o preguntas sin 12 respuestas: " + String.Join(" ", preguntasSin12Respuestas) + "\n"; } if (preguntasSin8Acertadas4Erroneas.Count > 0) { error += "Las siguientes preguntas no tienen 8 respuestas válidas y 4 erróneas: " + String.Join(" ", preguntasSin8Acertadas4Erroneas) + "\n"; } if (nivelesInferioresAlMaximo.Count > 0) { error += $"El nivel máximo es {maxNivel} pero no hay preguntas en el nivel o niveles: " + String.Join(" ", nivelesInferioresAlMaximo) + "\n"; } if (!String.IsNullOrWhiteSpace(error)) { error += "póngase en contacto con su administrador@"; } return(error); }
public String GestionarTablas() { //Importamos los adaptadores para las tablas del DataSet PreguntasTableAdapter preguntasTableAdapter = new PreguntasTableAdapter(); RespNoValidasTableAdapter respNoValidasTableAdapter = new RespNoValidasTableAdapter(); RespuestasTableAdapter respuestasTableAdapter = new RespuestasTableAdapter(); String errormsj = ""; //Llenamos las tablas try { //llenar tablas (si se conecta a la base de datos) preguntasTableAdapter.Fill(dsCultura.Preguntas); respNoValidasTableAdapter.Fill(dsCultura.RespNoValidas); respuestasTableAdapter.Fill(dsCultura.Respuestas); //control de errores int nivelMinimo = 1; int nivelMaximo = (from preg in dsCultura.Preguntas select preg.Nivel).Max(); //comprobar si tiene preguntas if (dsCultura.Preguntas.Count < 1) { errormsj += "No hay preguntas en la base de datos"; } foreach (var drPpreg in dsCultura.Preguntas) { //comprobar que cada pregunta tenga 12 respuestas int numPreg = drPpreg.NumPregunta; if (drPpreg.GetRespuestasRows().Count() != 12) { errormsj += "\nNo hay 12 respuestas para la pregunta" + numPreg; } else { //Comprobar que cada pregunta tiene 8 respuestas validas y 4 no validas int numValidas = 0; int numNovalidas = 0; foreach (var drResp in drPpreg.GetRespuestasRows()) { if (drResp.Valida) { numValidas++; } else { numNovalidas++; } } if (numNovalidas != 4 && numValidas != 8) { errormsj += "\nLa pregunta: " + numPreg + " no tiene 8 respuestas validas y 4 no validas"; } } } //comprobar que al menos hay 1 pregunta en cada nivel for (int i = nivelMinimo; i <= nivelMaximo; i++) { var numPreguntas = (from preg in dsCultura.Preguntas where preg.Nivel == i select preg.NumPregunta); if (numPreguntas.Count() == 0) { errormsj += "\nEl nivel máximo es " + nivelMaximo + " pero no hay preguntas en el nivel: " + i; } } } catch (Exception exc) { if (errormsj != "") { errormsj = "\n"; } errormsj += exc.Message; } return(errormsj); }