// wczytanie z bazy public static List <Skoki> Wczytaj() { List <Skoki> listaSkokow = new List <Skoki>(); MySqlConnection polaczenie = Baza.Polaczenie(); polaczenie.Open(); try { string maxID = "SELECT MAX(ID_Skoku) FROM Skoki"; MySqlCommand cmd = new MySqlCommand(maxID, polaczenie); MySqlDataReader dr = cmd.ExecuteReader(); dr.Read(); int ilosc = Convert.ToInt32(dr[0]); dr.Close(); int i = 1; while (i <= ilosc) { string pobierz = "SELECT * FROM Skoki WHERE ID_Skoku = " + i; cmd.CommandText = pobierz; dr = cmd.ExecuteReader(); dr.Read(); int id = Convert.ToInt32(dr[0]); int odleglosc = Convert.ToInt32(dr[1]); int punkty = Convert.ToInt32(dr[2]); int id_skoczka = Convert.ToInt32(dr[3]); int id_zawodow = Convert.ToInt32(dr[4]); dr.Close(); Skoki skok = new Skoki(id, odleglosc, punkty, id_skoczka, id_zawodow); listaSkokow.Add(skok); i++; } } catch (Exception e) { MessageBox.Show("Błąd połączenia\n" + e.ToString()); } finally { polaczenie.Close(); } return(listaSkokow); }
// *** SYMULACJA *** // Rozpoczęcie SYMULACJI skoków private void bt_symulacja_start_Click(object sender, EventArgs e) { rtb_symulacja_rekordy.Clear(); rtb_symulacja_skoki.Clear(); List <Skoczkowie> listaSkoczkow = Skoczkowie.Wczytaj(); List <Skocznie> listaSkoczni = Skocznie.Wczytaj(); List <Zawody> listaZawodow = Zawody.Wczytaj(); List <Skoki> listaSkokow = Skoki.Wczytaj(); // symulacja na wszystkich skoczniach if (cb_symulacja_skocznie.Checked) { foreach (Skocznie skocznia in listaSkoczni) { skocznia.PobitoRekord += skocznia_PobitoRekord; Zawody turniej = new Zawody(listaZawodow.Count + 1, DateTime.Now, skocznia.id); listaZawodow.Add(turniej); if (cb_symulacja_zapis.Checked) { turniej.Zapisz(turniej); } foreach (Skoczkowie skoczek in listaSkoczkow) { Skoki skok = Symuluj(listaSkokow.Count + 1, skoczek, skocznia, turniej.id); listaSkokow.Add(skok); if (cb_symulacja_zapis.Checked) { skok.Zapisz(skok); skoczek.ZapiszZdobytePunkty(skoczek); } if (!cb_symulacja_widok.Checked) { rtb_symulacja_skoki.Text += skok.ToString(); } } } } }
// zapis do bazy public void Zapisz(Skoki skok) { MySqlConnection polacz = Baza.Polaczenie(); string wstaw = String.Format("INSERT INTO Skoki VALUES(null, {0}, {1}, {2}, {3})" , Convert.ToDouble(skok.odleglosc), skok.punkty, skok.id_skoczka, skok.id_zawodow); polacz.Open(); MySqlCommand cmd = new MySqlCommand(wstaw, polacz); try { cmd.ExecuteNonQuery(); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { polacz.Close(); } }