Creare un gestionale per strutture ricettive in C# – 21 – Inserire Prenotazione nel Database: Ci avviciniamo sempre più alla fine del corso, ed in questo video andiamo quindi a caricare finalmente la prenotazione nel database.
In questa lezione infatti andremo a scrivere il codice che ci permetterà di inserire i dati della prenotazione nella tabella Prenotazioni del nostro database.
Inoltre andremo a scrivere una funzione che leggendo i dati presenti nelle listbox di Sconti e Costi Extra andrà a creare una stringa unica con gli elementi separati da un punto e virgola.
Creare un gestionale per strutture ricettive in C# – 21 – Inserire Prenotazione nel Database
Iniziamo con il codice usato per inserire i dati nel database:
if (btnAggiungi.Tag.ToString() == "aggiungi")
{
sqlQuery = "INSERT INTO [Prenotazioni] ([Id], [Nome], [Cognome], [Indirizzo], [Citta], [CAP], [Nazione], [DataNascita],"+
"[Nazionalita], [Telefono], [Email], [TipoDocumento], [CodiceDocumento], [Documento],"+
" [DataArrivo], [DataPartenza], [NumeroNotti], [NumeroOspiti], [Camera], [Note], [CostiExtra], [Sconti],"+
"[TasseSoggiorno], [MotivoEsenzione], [MetodoPagamento], [Totale]) VALUES ('" + IdCliente
+ "', '" + txtNome.Text + "', '" + txtCognome.Text + "','" + txtIndirizzo.Text + "','" + txtCitta.Text
+ "','" + txtCap.Text + "','" + cmbNazione.Text + "','" + "11/08/2021" + "','" + cmbNazionalita.Text +
"','" + txtTelefono.Text + "','" + txtEmail.Text + "','" + cmbTipoDocumento.Text + "','" +
txtCodiceDocumento.Text + "','" + txtCaricaDocumento.Text + "','" + "11/08/2021" + "','" +
"11/08/2021" + "','" + numNotti.Value + "','" + numOspiti.Value + "','" + cmbCamera.Text + "','" + txtNote.Text +
"','" + StringaCostiExtra + "','" + StringaScontiExtra + "','" + SwitchTasseSoggiorno + "','" + txtMotivoEsenzione.Text +
"','" + cmbMetodoPagamento.Text + "','" + 0.0f + "')";
}
Tramite questo codice andiamo a creare la stringa con la query da inviare al database.
Alcuni campi sono preimpostati perchè li andremo a vedere nel dettaglio nella prossima lezione.
Infatti per il momento, le date ed il prezzo finale hanno un valore fisso.
Quasi tutti i campi vengono letti direttamente dai rispettivi Input, andiamo però ad analizzare i campi che invece necessitano di una variabile.
IdCliente
Per l’IdCliente abbiamo deciso di farlo generare automaticamente al programma prendendo data di arrivo, nome e cognome del cliente.
SwitchTasseSoggiorno
Nel database le tasse di soggiorno hanno 2 valori possibili:
- 0
- 1
0 se non devono essere pagate, ed 1 se invece devono essere pagate.
Per questo motivo avremo bisogno di una variabile che controllando se è attiva la spunta sulla checkbox assegna uno dei 2 valori.
int SwitchTasseSoggiorno = 0;
if (chkTasse.Checked == true)
{
SwitchTasseSoggiorno = 1;
}
else
{ SwitchTasseSoggiorno = 0; }
StringaCostiExtra e StringaScontiExtra
Extra e Sconti nella listbox sono inseriti come elementi separati, quindi per poterli inserire nel database dovremo creare necessariamente una stringa che li elenca tutti.
Per farlo quindi andremo a scrivere un codice che leggendo tutti gli elementi della Listbox li unisce in un’unica stringa separandoli con un punto e virgola.
string StringaDaListBox(ListBox ListBoxInput)
{
string StringaFinale = "";
if (ListBoxInput.Items.Count > 0)
{
for (int a = 0; a < ListBoxInput.Items.Count; a++)
{
StringaFinale = StringaFinale + ListBoxInput.Items[a];
if (a != ListBoxInput.Items.Count - 1)
{
StringaFinale = StringaFinale + ";";
}
}
}
return StringaFinale;
}
Questo codice va ad analizzare la Listbox passata in Input e se sono presenti elementi li aggiunge alla stringa.
Inoltre alla fine di ogni elemento, ad eccezione dell’ultimo, aggiunge un punto e virgola.
string StringaCostiExtra = StringaDaListBox(lstCosti);
string StringaScontiExtra = StringaDaListBox(lstSconti);
In questo modo poi andiamo a richiamare la funzione e a creare le 2 stringhe da passare poi al database.