Creare un gestionale per strutture ricettive in C# – 21 – Inserire Prenotazione nel Database

Creare un gestionale per strutture ricettive in C# - 21 - Inserire Prenotazione nel Database

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.