private void btn_uppdatera_Click(object sender, EventArgs e) { var newForm = new frm_adderaUppd(); //Beroende på om det är fysiskt eller digitalt spel skickas nedladdningar eller enheter if (dgv_spel.CurrentRow.DataBoundItem is FysisktSpel) { FysisktSpel aktuelltFysSpel = (FysisktSpel)dgv_spel.CurrentRow.DataBoundItem; newForm.hamtaSpel(aktuelltFysSpel, 0, aktuelltFysSpel.Enheter); } else if (dgv_spel.CurrentRow.DataBoundItem is DigitaltSpel) { DigitaltSpel aktuelltDigSpel = (DigitaltSpel)dgv_spel.CurrentRow.DataBoundItem; newForm.hamtaSpel(aktuelltDigSpel, aktuelltDigSpel.Nedladdningar, 0); } //När man trycker på OK i adderaUppd-fönstret händer detta if (DialogResult.OK == newForm.ShowDialog()) { //Uppdaterar listan med spel MinaSpel.Clear(); LäsInAllaSpel(MinaSpel); dgv_spel.DataSource = null; dgv_spel.DataSource = MinaSpel; } }
public void LäsInAllaSpel(List <Spel> MinaSpel) { //Hämtar koppling till databasen string connectionString = "SERVER=localhost;DATABASE=spelbutik;UID=lennart;PASSWORD=abcdef"; MySqlConnection conn = new MySqlConnection(connectionString); conn.Open(); //Söker efter alla spel string sqlsats = "SELECT * FROM spel"; MySqlCommand cmd = new MySqlCommand(sqlsats, conn); MySqlDataReader dataReader = cmd.ExecuteReader(); //Läser in alla spel while (dataReader.Read()) { List <string> kolumner = new List <string>(); //Samlar alla kolumner i en lista for (int i = 0; i < dataReader.FieldCount; i++) { //Om en kolumn är NULL får den en string "NULL" för att undvika felmeddelande if (!dataReader.IsDBNull(i)) { kolumner.Add(dataReader.GetString(i)); } else { kolumner.Add("NULL"); } } //Kollar ifall det är fysiskt eller digitalt spel bool fys = false; bool dig = false; //Om nedladdningar är noll kan det vara både fysiskt eller digitalt if (kolumner[8] == 0.ToString()) { //Om enheter också är noll är det helt ett nytt digitalt spel som inte laddats ner förut if (kolumner[7] == 0.ToString()) { dig = true; } //Annars är det ett fysiskt spel fys = true; } //Om nedladdningar inte är noll är det ett digitalt spel else { dig = true; } //Lägger till spelet i listan //Lägger bara till ett fysiskt spel om det finns enheter i lagret if (fys && kolumner[7] != 0.ToString()) { FysisktSpel sp = new FysisktSpel(int.Parse(kolumner[0]), kolumner[1], kolumner[2], int.Parse(kolumner[3]), kolumner[4], int.Parse(kolumner[5]), int.Parse(kolumner[6]), int.Parse(kolumner[7])); MinaSpel.Add(sp); } else if (dig) { DigitaltSpel sp = new DigitaltSpel(int.Parse(kolumner[0]), kolumner[1], kolumner[2], int.Parse(kolumner[3]), kolumner[4], int.Parse(kolumner[5]), int.Parse(kolumner[6]), int.Parse(kolumner[7])); MinaSpel.Add(sp); } } }