Creare un gestionale per strutture ricettive in C# – #7 – Modifica Camera

Creare un gestionale per strutture ricettive in C# – #7 – Modifica Camera

Creare un gestionale per strutture ricettive in C# – #7 – Modifica Camera: Nella lezione 5 abbiamo visto come aggiungere una nuova camera al nostro database, in questa lezione faremo alcune modifiche per permettere con pochi ritocchi di scegliere se aggiungere o modificare una voce nel database.

Creare un gestionale per strutture ricettive in C# – #7 – Modifica Camera

Il codice che ci permetterà di modificare una voce nel database è molto simile a quello per aggiungere una nuova voce, infatti le modifiche che faremo sono davvero poche.

Quindi partiamo copiando il codice usato sul pulsante Aggiungi Camera e lo incolliamo anche per Modifica Camera.

Ora dovremo passare tutte le informazioni dalla DataGridView ai campi presenti sul pannello di Aggiunta/Modifica Camera.

Leggere i dati dalla DataGridView

Per poter prendere le informazioni dalla DataGridView ci basterà utilizzare un codice simile a questo:

dataElencoCamere.Rows[dataElencoCamere.SelectedRows[0].Index].Cells[0].Value.ToString();

Che ci permette di prendere i dati dalla prima cella della prima riga selezionata.

Ci basterà poi sostituire = con 1, 2, 3 ecc per prendere i dati dalle altre colonne.

Segnalare se stiamo aggiungendo o modificando una camera

Ci sono diversi metodi per segnalare al nostro programma se stiamo effettuando un’operazione piuttosto che un’altra.

Possiamo ad esempio creare una variabile e passare un valore piuttosto che un altro.

In questo esempio utilizzeremo la proprietà Tag del pulsante Aggiungi.

Invece di creare una nuova variabile, andremo ad inserire il valore nel campo tag.

// IN CASO DI NUOVA CAMERA
btnAggiungi.Tag = "aggiungi";
//IN CASO DI MODIFICA DI UNA CAMERA ESISTENTE
btnAggiungi.Tag = "modifica";

Modificare i record nel database

Passiamo ora alla modifica più importante, cioè quella che riguarda il database.

Infatti il comando SQL per modificare una voce nel database è diverso da quello usato per inserire una voce.

Quindi se utilizzeremo INSERT INTO come fatto in precedenza avremo un errore.

Questo perchè il codice ID che è usato come indice deve essere univoco, e inviando il comando INSERT INTO, il database cercherà di creare un nuovo record con quelle informazioni e trovando già lo stesso ID non riuscirà a completare la query.

Per questo motivo utilizzeremo UPDATE.

La sintassi corretta è:

UPDATE NomeTabella SET Colonna1 = 'Valore', Colonna2 = 'Valore' WHERE Colonna1 = 'Valore';

Esempio:

UPDATE tblCamere SET Id = '001', Nome = 'Singola' WHERE Id = '001';

Con questo Codice andiamo a modificare Id e Nome dei record che hanno come id il valore 001.

Il codice completo usato nella nostra lezione è:

sqlQuery = "UPDATE [tblCamere] SET [Id] = '" + txtID.Text + "', [Nome] ='" + txtNome.Text + "', [TipoCamera] = '" + txtTipoCamera.Text + "', [PostiLetto] = '"
                    + txtPostiLetto.Value + "', [LettiMatrimoniali] = '" + txtLettiMatrimoniali.Value + "', [LettiSingoli] = '" + txtLettiSingoli.Value + "', [Prezzo] = '"
                    + txtPrezzo.Text + "', [BagnoInCamera] = '" + ValBagno + "', [Note] = '" + txtNote.Text + "' WHERE [Id] = '" + txtID.Text + "';";