Creare un gestionale per strutture ricettive in C# – #23 – Carica Prenotazioni: Parte numero 23 di questo tutoria che riprende dopo quasi un anno.
Creare un gestionale per strutture ricettive in C# – #23 – Carica Prenotazioni
Nel tutorial precedente avevamo corretto la query di inserimento dei dati relativi alle prenotazioni nel database.
Ora che finalmente il database ha i record relativi alle prenotazioni possiamo procere con il caricamento di queste informazioni nella DataGridView.
La maggior parte delle operazioni presenti in questo tutorial le abbiamo viste già nel tutorial delle camere.
Per questo motivo la maggior parte del lavoro è un copia e incolla con la modifica dei dati.
Per semplificare il lavoro di inserimento andrò ad inserire anche qui i codici presenti in questo video tutorial.
In questo modo chi segue utilizzando gli stessi nomi può fare un semplice copia e incolla.
Invia le prenotazioni alla DataGridView
Il primo step di questo tutorial riguarda proprio l’invio dei dati dal database alla DataGridView.
Per farlo aggiungiamo una funzione da richiamare all’apertura del form.
private async void CaricaDatabasePrenotazioni()
{
dataElencoPrenotazioni.Rows.Clear();
//CONNESSIONE DATABASE
string stringa_connessione = Properties.Settings.Default.CamereConnectionString;
SqlConnection connessioneDB = new SqlConnection(stringa_connessione);
string sqlQuery = "SELECT * FROM [Prenotazioni]";
using (connessioneDB)
{
try
{
await connessioneDB.OpenAsync();
var InviaQuery = new SqlCommand(sqlQuery, connessioneDB);
SqlDataReader DatiTabellaPrenotazioni = await InviaQuery.ExecuteReaderAsync();
while (DatiTabellaPrenotazioni.Read())
{
string valoreId = DatiTabellaPrenotazioni.GetString(0);
string valoreNome = DatiTabellaPrenotazioni.GetString(1);
string valoreCognome = DatiTabellaPrenotazioni.GetString(2);
DateTime valoreDataArrivo = DatiTabellaPrenotazioni.GetDateTime(14);
int valoreNumeroNotti = DatiTabellaPrenotazioni.GetInt32(16);
int valoreNumeroOspiti = DatiTabellaPrenotazioni.GetInt32(17);
string valoreCamera = DatiTabellaPrenotazioni.GetString(18);
decimal valoreCostoTotale = DatiTabellaPrenotazioni.GetDecimal(25);
DateTime valoreDataPartenza = DatiTabellaPrenotazioni.GetDateTime(15);
string valoreCostiExtra = DatiTabellaPrenotazioni.GetString(20);
string valoreScontiExtra = DatiTabellaPrenotazioni.GetString(21);
int valoreTasseSoggiorno = DatiTabellaPrenotazioni.GetInt32(22);
string valoreMotivoEsenzione = DatiTabellaPrenotazioni.GetString(23);
string valoreMetodoPagamento = DatiTabellaPrenotazioni.GetString(24);
string valoreIndirizzo = DatiTabellaPrenotazioni.GetString(3);
string valoreCitta = DatiTabellaPrenotazioni.GetString(4);
string valoreCap = DatiTabellaPrenotazioni.GetString(5);
string valoreNazione = DatiTabellaPrenotazioni.GetString(6);
DateTime valoreDataNascita = DatiTabellaPrenotazioni.GetDateTime(7);
string valoreNazionalita = DatiTabellaPrenotazioni.GetString(8);
string valoreTelefono = DatiTabellaPrenotazioni.GetString(9);
string valoreEmail = DatiTabellaPrenotazioni.GetString(10);
string valoreTipoDocumento = DatiTabellaPrenotazioni.GetString(11);
string valoreCodiceDocumento = DatiTabellaPrenotazioni.GetString(12);
string valoreDocumento = DatiTabellaPrenotazioni.GetString(13);
string valoreNote = DatiTabellaPrenotazioni.GetString(19);
bool ValoreFinaleTasseSoggiorno;
if (valoreTasseSoggiorno == 0) { ValoreFinaleTasseSoggiorno = false; } else { ValoreFinaleTasseSoggiorno = true; }
string[] NuovaCamera = { valoreId, valoreNome, valoreCognome, valoreDataArrivo.ToString(), valoreNumeroNotti.ToString(),
valoreNumeroOspiti.ToString(), valoreCamera, valoreCostoTotale.ToString(), valoreDataPartenza.ToString(),
valoreCostiExtra, valoreScontiExtra, ValoreFinaleTasseSoggiorno.ToString(), valoreMotivoEsenzione,
valoreMetodoPagamento, valoreIndirizzo, valoreCitta, valoreCap, valoreNazione, valoreDataNascita.ToString(),
valoreNazionalita, valoreTelefono,valoreEmail,valoreTipoDocumento, valoreCodiceDocumento, valoreDocumento ,valoreNote};
dataElencoPrenotazioni.Rows.Add(NuovaCamera);
}
}
catch (SqlException ex)
{
MessageBox.Show(ex.Message);
}
finally
{
if (connessioneDB.State == ConnectionState.Open)
{
connessioneDB.Close();
}
lblNumeroPrenotazioni.Text = dataElencoPrenotazioni.Rows.Count.ToString();
}
}
}
Aggiunta Id alla DataGridView
Per poter procedere con il tutorial e permettere la modifica e l’eliminazione delle registrazioni dal database è necessario aggiungere l’id alla datagridview.
Rimozione Record dal database
Utilizzando l’id della registrazione possiamo inviare il comando di eliminazione al database.
private void btnRimuoviPrenotazione_Click(object sender, EventArgs e)
{
//CONNESSIONE DATABASE
string stringa_connessione = Properties.Settings.Default.CamereConnectionString;
SqlConnection connessioneDB = new SqlConnection(stringa_connessione);
if (connessioneDB.State != ConnectionState.Open)
{
connessioneDB.Open();
}
//QUERY DATABASE
// DELETE FROM [tblCamere] WHERE ID = 'valore';
string IdRimozione = dataElencoPrenotazioni.Rows[dataElencoPrenotazioni.SelectedRows[0].Index].Cells[0].Value.ToString();
string sqlQuery = "DELETE FROM [Prenotazioni] WHERE [Id] = '" + IdRimozione + "';";
SqlCommand QueryRimozionePrenotazione = new SqlCommand(sqlQuery, connessioneDB);
try
{
if (MessageBox.Show("Sei sicuro di voler rimuovere la prenotazione con ID " + IdRimozione, "Rimuovere la prenotazione?", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
QueryRimozionePrenotazione.ExecuteNonQuery();
}
}
catch (SqlException ex)
{
MessageBox.Show(ex.Number.ToString());
}
connessioneDB.Close();
// RICARICA DATABASE
CaricaDatabasePrenotazioni();
}
Modifica Record nel database
La modifica dei record del database, prevede la possibilità di inviare nuovamente i dati agli input per poterli modificare.
La maggior parte dei dati può essere inviata facilmente o tramite una conversione nel formato corretto.
Sconti e Costi Extra invece prevedono un attenzione maggiore, per questo motivo li vedremo nel prossimo tutorial.
private void btnModificaPrenotazione_Click(object sender, EventArgs e)
{
if (pnlAggiungiPrenotazioni.Visible == false)
{
pnlAggiungiPrenotazioni.Visible = true;
pnlAggiungiPrenotazioni.Dock = DockStyle.Left;
btnAggiungi.Tag = "modifica";
CaricaDatiPrenotazioneSelezionata();
}
else
{
pnlAggiungiPrenotazioni.Visible = false;
}
}
private void CaricaDatiPrenotazioneSelezionata()
{
//AGGIUNTI DATI PRENOTAZIONE
//ID
txtNome.Text = dataElencoPrenotazioni.Rows[dataElencoPrenotazioni.SelectedRows[0].Index].Cells[1].Value.ToString();
txtCognome.Text = dataElencoPrenotazioni.Rows[dataElencoPrenotazioni.SelectedRows[0].Index].Cells[2].Value.ToString();
dateArrivo.Value = Convert.ToDateTime(dataElencoPrenotazioni.Rows[dataElencoPrenotazioni.SelectedRows[0].Index].Cells[3].Value.ToString());
numNotti.Value = Convert.ToInt32(dataElencoPrenotazioni.Rows[dataElencoPrenotazioni.SelectedRows[0].Index].Cells[4].Value.ToString());
numOspiti.Value = Convert.ToInt32(dataElencoPrenotazioni.Rows[dataElencoPrenotazioni.SelectedRows[0].Index].Cells[5].Value);
cmbCamera.Text = dataElencoPrenotazioni.Rows[dataElencoPrenotazioni.SelectedRows[0].Index].Cells[6].Value.ToString();
txtTotale.Text = dataElencoPrenotazioni.Rows[dataElencoPrenotazioni.SelectedRows[0].Index].Cells[7].Value.ToString();
datePartenza.Value = Convert.ToDateTime(dataElencoPrenotazioni.Rows[dataElencoPrenotazioni.SelectedRows[0].Index].Cells[8].Value.ToString());
//CostiExtra
//ScontiExtra
if (dataElencoPrenotazioni.Rows[dataElencoPrenotazioni.SelectedRows[0].Index].Cells[11].Value.ToString() == "True")
{ chkTasse.Checked = true; }
else
{ chkTasse.Checked = false; }
txtMotivoEsenzione.Text = dataElencoPrenotazioni.Rows[dataElencoPrenotazioni.SelectedRows[0].Index].Cells[12].Value.ToString();
cmbMetodoPagamento.Text = dataElencoPrenotazioni.Rows[dataElencoPrenotazioni.SelectedRows[0].Index].Cells[13].Value.ToString();
txtIndirizzo.Text = dataElencoPrenotazioni.Rows[dataElencoPrenotazioni.SelectedRows[0].Index].Cells[14].Value.ToString();
txtCitta.Text = dataElencoPrenotazioni.Rows[dataElencoPrenotazioni.SelectedRows[0].Index].Cells[15].Value.ToString();
txtCap.Text = dataElencoPrenotazioni.Rows[dataElencoPrenotazioni.SelectedRows[0].Index].Cells[16].Value.ToString();
cmbNazione.Text = dataElencoPrenotazioni.Rows[dataElencoPrenotazioni.SelectedRows[0].Index].Cells[17].Value.ToString();
dateNascita.Value = Convert.ToDateTime(dataElencoPrenotazioni.Rows[dataElencoPrenotazioni.SelectedRows[0].Index].Cells[18].Value.ToString());
cmbNazionalita.Text = dataElencoPrenotazioni.Rows[dataElencoPrenotazioni.SelectedRows[0].Index].Cells[19].Value.ToString();
txtTelefono.Text = dataElencoPrenotazioni.Rows[dataElencoPrenotazioni.SelectedRows[0].Index].Cells[20].Value.ToString();
txtEmail.Text = dataElencoPrenotazioni.Rows[dataElencoPrenotazioni.SelectedRows[0].Index].Cells[21].Value.ToString();
cmbTipoDocumento.Text = dataElencoPrenotazioni.Rows[dataElencoPrenotazioni.SelectedRows[0].Index].Cells[22].Value.ToString();
txtCodiceDocumento.Text = dataElencoPrenotazioni.Rows[dataElencoPrenotazioni.SelectedRows[0].Index].Cells[23].Value.ToString();
txtCaricaDocumento.Text = dataElencoPrenotazioni.Rows[dataElencoPrenotazioni.SelectedRows[0].Index].Cells[24].Value.ToString();
txtNote.Text = dataElencoPrenotazioni.Rows[dataElencoPrenotazioni.SelectedRows[0].Index].Cells[25].Value.ToString();
}
Codice Sorgente
Il codice sorgente aggiornato a questo tutorial è scaricabile da questo link: