// --- MODIFICA UN ATLETA --- public void modificaAtleta(int id) // input: id atleta { bool trovato = false, // output: flag in caso di atleta presente errore = false; // lavoro: flag in caso di eccezione Atleta atleta = new Atleta(); // lavoro: oggetto d'appoggio Console.WriteLine("*** Modifica Atleta ***" + Environment.NewLine + Environment.NewLine); foreach (Atleta a in LAtleti) { if (a.Id == id) { trovato = true; do { errore = false; // prende i dati da tastiera atleta = inputDati(); // aggiorna dati dell'atleta nel database if (GestioneDB.eseguiQuery("UPDATE Atleti SET" + " Nome = '" + atleta.Nome + "', Cognome = '" + atleta.Cognome + "', Eta = " + atleta.Eta + " WHERE ID = " + a.Id)) { a.Nome = atleta.Nome; a.Cognome = atleta.Cognome; a.Eta = atleta.Eta; Console.WriteLine("Aggiornamento effettuato" + Environment.NewLine); } else { errore = true; Console.WriteLine("Errore di inserimento" + Environment.NewLine); } } while (errore); } } if (!trovato) { Console.WriteLine("Non esiste un atleta con questo nome"); } Console.WriteLine("Premere un tasto per continuare..."); Console.ReadKey(); }
// --- PRENDE DATI IN INPUT --- public Atleta inputDati() { Atleta atleta = new Atleta(); // lavoro: oggetto atleta bool errore; // lavoro: flag in caso di eccezione do { errore = false; try { // prende in input i valori da inserire nell'oggetto Console.WriteLine("Inserire il Nome: "); atleta.Nome = Console.ReadLine(); Console.WriteLine(Environment.NewLine + "Inserire il Cognome: "); atleta.Cognome = Console.ReadLine(); Console.WriteLine(Environment.NewLine + "Inserire l'eta': "); atleta.Eta = int.Parse(Console.ReadLine()); foreach (Atleta a2 in LAtleti) { if ((a2.Nome == atleta.Nome) && (a2.Cognome == atleta.Cognome) && (a2.Eta == atleta.Eta)) { throw new Exception("Atleta gia' presente in memoria"); } } } catch (FormatException e) // eccezione in caso di formato errato { errore = true; Console.WriteLine(Environment.NewLine + "Errore di input: " + e); } catch (Exception e) // eccezione { errore = true; Console.WriteLine(Environment.NewLine + "Errore: " + e); } } while (errore); if (errore) { Console.WriteLine(Environment.NewLine + "Premere un tasto per continuare..."); Console.ReadLine(); } return(atleta); }
// --- ID ULTIMO UTENTE INSERITO --- public int ultimoInserito(Atleta a) { int id = 0; List <string[]> risultati; risultati = GestioneDB.eseguiSelect("SELECT ID FROM Atleti" + " WHERE Nome = '" + a.Nome + "' AND Cognome = '" + a.Cognome + "' ORDER BY data DESC " + " LIMIT 1"); if (risultati.Count > 0) { foreach (string[] record in risultati) { id = int.Parse(record[0]); } } return(id); }
// --- TRASFERISCE I DATI DAL DATABASE ALLA LISTA --- public void popolaLista() { Atleta atleta = null; // lavoro: oggetto atleta List <string[]> risultati; // lavoro: memorizza i record del database risultati = GestioneDB.eseguiSelect("SELECT * FROM Atleti"); if (risultati.Count > 0) { foreach (string[] record in risultati) { atleta = new Atleta(); atleta.Id = int.Parse(record[0]); atleta.Nome = record[1]; atleta.Cognome = record[2]; atleta.Eta = int.Parse(record[3]); // inserisce l'oggetto nella lista LAtleti.Add(atleta); } } }
// metodi // --- CREA UN ATLETA --- public void aggiungiAtleta() { bool errore = false; // lavoro: flag in caso di eccezione Atleta atleta = new Atleta(); // lavoro: oggetto contenente le info dell'atleta Console.WriteLine("*** Inserimento Nuovo Atleta ***" + Environment.NewLine + Environment.NewLine); do { // prende i dati in input da tastiera atleta = inputDati(); // inserisce i dati nel database if (GestioneDB.eseguiQuery("INSERT INTO Atleti (Nome,Cognome,Eta) " + "VALUES('" + atleta.Nome + "','" + atleta.Cognome + "'," + atleta.Eta + ")")) { // memorizza l'id dell'ultimo record inserito atleta.Id = ultimoInserito(atleta); // aggiunge l'oggetto alla lista LAtleti.Add(atleta); Console.WriteLine("Inserimento effettuato" + Environment.NewLine); } else { errore = true; Console.WriteLine("Errore di inserimento" + Environment.NewLine); } Console.WriteLine("Premere un tasto per continuare..."); Console.ReadKey(); } while (errore); }