Mar.22
TP 7 : Les boutons de navigation et les ComboBoxs.
Objectif
L’objectif de ce TP est de s’habituer à utiliser les opérations de la mise à jour sur une table, et aussi l’utilisation des Combobox et les Menus.
Questions
Partie serveur :
- Créer la base TP7.
- Dans la base TP7, crée les tables : academie, delegation, lycee.
Partie client :
- Créer un menu qui facilite l’utilisation de l’application.
- Créer l’interface suivante :
- Écrire les code des boutons Ajouter, Modifier, Supprimer et Vider.
- Écrire les code des boutons de navigation des boutons Suivant, Précédent, Premier et Dernier.
- Créer l’interface suivante :
- L’académie de la délégation est choisie dans une liste déroulante.
- Écrire les code des boutons Ajouter, Modifier, Supprimer et Vider.
- Écrire les code des boutons de navigation des boutons Suivant, Précédent, Premier et Dernier.
- Créer l’interface suivante :
- L’académie et la délégation du lycée sont choisies dans des listes déroulantes.
- Écrire les code des boutons Ajouter, Modifier, Supprimer et Vider.
- Créer l’interface suivante :
- Le lycée du professeur est choisi dans une liste déroulante ; de même l’état civil est choisi dans une liste préremplie avec les valeurs : célibataire, marié, divorcé et veuf.
- Si la valeur célibataire est sélectionnée, la zone de texte pour la saisie du nombre d’enfants doit être désactivée.
- Écrire les code des boutons Ajouter, Modifier, Supprimer et Vider.
- Écrire les code des boutons de navigation des boutons Suivant, Précédent, Premier et Dernier.
Correction
La classe academie :
namespace TP7_Gestion_Etablissement { public partial class Academie : Form { SqlConnection conn = new SqlConnection("server = DESKTOP-EIALG0J\\SQLEXPRESS; database = education; integrated security = SSPI"); SqlDataReader dr; SqlCommand cmd; BindingSource source = new BindingSource(); public Academie() { InitializeComponent(); } private void Vider_Click(object sender, EventArgs e) { idC.Text = ""; nomC.Text = ""; } private void Supprmier_Click(object sender, EventArgs e) { int id = int.Parse(idC.Text); try { cmd = new SqlCommand("delete from academie where ldAcademie =" + id + "", conn); conn.Open(); cmd.ExecuteNonQuery(); conn.Close(); listeAcademies(); MessageBox.Show("La suppression a été effectuée avec succè"); } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void Ajouter_Click(object sender, EventArgs e) { int id = int.Parse(idC.Text); String nomAcad = nomC.Text; try { SqlCommand cmd = new SqlCommand("INSERT INTO academie VALUES(" + id + " , '" + nomAcad + "')", conn); conn.Open(); cmd.ExecuteNonQuery(); // Exécution de la requête SQL MessageBox.Show("L'insertion a été effectuée avec succè"); conn.Close(); listeAcademies(); } catch (Exception ex) { // Affiche des erreurs MessageBox.Show(ex.Message); } } private void listeAcademies() { try { cmd = new SqlCommand("select ldAcademie as 'Id Academie' , nomAcademie as 'Nom Academie' from academie", conn); conn.Open(); dr = cmd.ExecuteReader(); source.DataSource = dr; dv.DataSource = source; dr.Close(); conn.Close(); } catch (Exception ex) { // Affiche des erreurs MessageBox.Show(ex.Message); } } private void Modifier_Click(object sender, EventArgs e) { int id = int.Parse(idC.Text); String nomAcad = nomC.Text; try { SqlCommand cmd = new SqlCommand("update academie set nomAcademie = '" + nomAcad + "' where ldAcademie =" + id + "", conn); conn.Open(); cmd.ExecuteNonQuery(); // Exécution de la requête SQL MessageBox.Show("La modification a été effectuée avec succè"); conn.Close(); listeAcademies(); } catch (Exception ex) { // Affiche des erreurs MessageBox.Show(ex.Message); } } private void navigation() { try { cmd = new SqlCommand("select ldAcademie as 'Id Academie' , nomAcademie as 'Nom Academie' from academie", conn); conn.Open(); dr = cmd.ExecuteReader(); source.DataSource = dr; idC.DataBindings.Add(new Binding("text", source, "Id Academie")); nomC.DataBindings.Add(new Binding("text", source, "Nom Academie")); indexLabel.Text = (source.Position + 1).ToString(); totalLabel.Text = source.Count.ToString(); dv.DataSource = source; dr.Close(); conn.Close(); } catch (Exception ex) { // Affiche des erreurs MessageBox.Show(ex.Message); } } private void Academie_Load(object sender, EventArgs e) { navigation(); idC.Text = ""; nomC.Text = ""; } private void button1_Click(object sender, EventArgs e) { source.MoveFirst(); indexLabel.Text = (source.Position + 1).ToString(); totalLabel.Text = source.Count.ToString(); } private void button2_Click(object sender, EventArgs e) { source.MovePrevious(); indexLabel.Text = (source.Position + 1).ToString(); totalLabel.Text = source.Count.ToString(); } private void button3_Click(object sender, EventArgs e) { source.MoveNext(); indexLabel.Text = (source.Position + 1).ToString(); totalLabel.Text = source.Count.ToString(); } private void button4_Click(object sender, EventArgs e) { source.MoveLast(); indexLabel.Text = (source.Position + 1).ToString(); totalLabel.Text = source.Count.ToString(); } } }
La classe delegation :
namespace TP7_Gestion_Etablissement { public partial class Delegation : Form { SqlConnection conn = new SqlConnection("server = DESKTOP-EIALG0J\\SQLEXPRESS; database = education; integrated security = SSPI"); SqlDataReader dr; SqlCommand cmd; BindingSource source = new BindingSource(); public Delegation() { InitializeComponent(); } private void label2_Click(object sender, EventArgs e) { } private void nomC_TextChanged(object sender, EventArgs e) { } private void nomAcademies() { try { cmd = new SqlCommand("select nomAcademie from academie ", conn); conn.Open(); dr = cmd.ExecuteReader(); if (dr.HasRows) { while (dr.Read()) { listeAcad.Items.Add(dr["nomAcademie"]); } } listeAcad.SelectedIndex = 0; conn.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void Delegation_Load(object sender, EventArgs e) { nomAcademies(); navigation(); } private void Vider_Click(object sender, EventArgs e) { idC.Text = ""; nomC.Text = ""; listeAcad.SelectedIndex = 0; } private int getIdAcademie(String nomAcad) { cmd = new SqlCommand("select ldAcademie from academie where nomAcademie = '" + nomAcad + "'", conn); conn.Open(); int i = (int)cmd.ExecuteScalar(); conn.Close(); return i; } private void Ajouter_Click(object sender, EventArgs e) { int id = int.Parse(idC.Text); String nomDele = nomC.Text; String nomAcademie = listeAcad.Text; int idAcad = getIdAcademie(nomAcademie); try { SqlCommand cmd = new SqlCommand("INSERT INTO delegation VALUES(" + id + " , '" + nomDele + "','" + idAcad + "')", conn); conn.Open(); cmd.ExecuteNonQuery(); // Exécution de la requête SQL MessageBox.Show("L'insertion a été effectuée avec succè"); conn.Close(); listeDelegations(); } catch (Exception ex) { // Affiche des erreurs MessageBox.Show(ex.Message); } } private void listeDelegations() { try { cmd = new SqlCommand("select ldDelegation as 'Id Delegation' , nomDelegation as 'Nom Delegation', nomAcademie as 'Nom Academie' from delegation, academie where academie.ldAcademie=delegation.ldAcademie ", conn); conn.Open(); dr = cmd.ExecuteReader(); source.DataSource = dr; dv.DataSource = source; dr.Close(); conn.Close(); } catch (Exception ex) { // Affiche des erreurs MessageBox.Show(ex.Message); } } private void Modifier_Click(object sender, EventArgs e) { int id = int.Parse(idC.Text); String nomDele = nomC.Text; String nomAcademie = listeAcad.Text; int idAcad = getIdAcademie(nomAcademie); try { SqlCommand cmd = new SqlCommand("update delegation set nomDelegation = '" + nomDele + "', ldAcademie='" + idAcad + "' where ldDelegation =" + id + "", conn); conn.Open(); cmd.ExecuteNonQuery(); // Exécution de la requête SQL MessageBox.Show("La modification a été effectuée avec succè"); conn.Close(); listeDelegations(); } catch (Exception ex) { // Affiche des erreurs MessageBox.Show(ex.Message); } } private void Supprmier_Click(object sender, EventArgs e) { int id = int.Parse(idC.Text); try { cmd = new SqlCommand("delete from delegation where ldDelegation =" + id + "", conn); conn.Open(); cmd.ExecuteNonQuery(); conn.Close(); listeDelegations(); MessageBox.Show("La suppression a été effectuée avec succè"); } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void navigation() { try { cmd = new SqlCommand("select ldDelegation as 'Id Delegation' , nomDelegation as 'Nom Delegation', nomAcademie as 'Nom Academie' from delegation, academie where academie.ldAcademie=delegation.ldAcademie ", conn); conn.Open(); dr = cmd.ExecuteReader(); source.DataSource = dr; idC.DataBindings.Add(new Binding("text", source, "Id Delegation")); nomC.DataBindings.Add(new Binding("text", source, "Nom Delegation")); listeAcad.DataBindings.Add(new Binding("SelectedItem", source, "Nom Academie")); indexLabel.Text = (source.Position + 1).ToString(); totalLabel.Text = source.Count.ToString(); dv.DataSource = source; dr.Close(); conn.Close(); } catch (Exception ex) { // Affiche des erreurs MessageBox.Show(ex.Message); } } private void button1_Click(object sender, EventArgs e) { source.MoveFirst(); indexLabel.Text = (source.Position + 1).ToString(); totalLabel.Text = source.Count.ToString(); } private void button2_Click(object sender, EventArgs e) { source.MovePrevious(); indexLabel.Text = (source.Position + 1).ToString(); totalLabel.Text = source.Count.ToString(); } private void button3_Click(object sender, EventArgs e) { source.MoveNext(); indexLabel.Text = (source.Position + 1).ToString(); totalLabel.Text = source.Count.ToString(); } private void button4_Click(object sender, EventArgs e) { source.MoveLast(); indexLabel.Text = (source.Position + 1).ToString(); totalLabel.Text = source.Count.ToString(); } private void listeAcad_SelectedIndexChanged(object sender, EventArgs e) { } } }
La classe lycee :
namespace TP7_Gestion_Etablissement { public partial class Lycee : Form { SqlConnection conn = new SqlConnection("server = DESKTOP-EIALG0J\\SQLEXPRESS; database = education; integrated security = SSPI"); SqlDataReader dr; SqlCommand cmd; BindingSource source = new BindingSource(); public Lycee() { InitializeComponent(); } private void nomAcademies() { try { cmd = new SqlCommand("select nomAcademie from academie ", conn); conn.Open(); dr = cmd.ExecuteReader(); if (dr.HasRows) { while (dr.Read()) { listeAcad.Items.Add(dr["nomAcademie"]); } } listeAcad.SelectedIndex = -1; conn.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void button1_Click(object sender, EventArgs e) { int id = int.Parse(idB.Text); String nomLycee = nomB.Text; String villeLycee = villeB.Text; String nomDelegation = listeDele.Text; int idDele = getIdDelegation(nomDelegation); try { SqlCommand cmd = new SqlCommand("INSERT INTO lycee VALUES(" + id + " , '" + nomLycee + "','" + villeLycee + "','" + idDele + "')", conn); conn.Open(); cmd.ExecuteNonQuery(); // Exécution de la requête SQL MessageBox.Show("L'insertion a été effectuée avec succè"); conn.Close(); listeLycees(); } catch (Exception ex) { // Affiche des erreurs MessageBox.Show(ex.Message); } } private void button2_Click(object sender, EventArgs e) { int id = int.Parse(idB.Text); String nomLycee = nomB.Text; String villeLycee = villeB.Text; String nomDelegation = listeDele.Text; int idDele = getIdDelegation(nomDelegation); try { SqlCommand cmd = new SqlCommand("update lycee set nomLycee = '" + nomLycee + "', villeLycee='" + villeLycee + "', ldDelegation='" + idDele + "' where idLycee =" + id + "", conn); conn.Open(); cmd.ExecuteNonQuery(); // Exécution de la requête SQL MessageBox.Show("La modification a été effectuée avec succè"); conn.Close(); listeLycees(); } catch (Exception ex) { // Affiche des erreurs MessageBox.Show(ex.Message); } } private void button3_Click(object sender, EventArgs e) { int id = int.Parse(idB.Text); try { cmd = new SqlCommand("delete from lycee where idLycee =" + id + "", conn); conn.Open(); cmd.ExecuteNonQuery(); conn.Close(); listeLycees(); MessageBox.Show("La suppression a été effectuée avec succè"); } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void button4_Click(object sender, EventArgs e) { idB.Text = ""; nomB.Text = ""; villeB.Text = ""; listeAcad.SelectedIndex = -1; listeDele.SelectedIndex = -1; listeAcad.Items.Clear(); listeDele.Items.Clear(); } private void listeLycees() { try { cmd = new SqlCommand("select idLycee as 'Id du lycee' , nomLycee as 'Nom du lycee', villeLycee as 'Ville du lycee', nomDelegation as 'Delegation', nomAcademie as 'Academie' from lycee, academie, delegation where delegation.ldDelegation=lycee.ldDelegation and delegation.ldAcademie=academie.ldAcademie", conn); conn.Open(); dr = cmd.ExecuteReader(); source.DataSource = dr; dv.DataSource = source; dr.Close(); conn.Close(); } catch (Exception ex) { // Affiche des erreurs MessageBox.Show(ex.Message); } } private void Lycee_Load(object sender, EventArgs e) { nomAcademies(); listeLycees(); } private int getIdAcademie(String nomAcad) { cmd = new SqlCommand("select ldAcademie from academie where nomAcademie = '" + nomAcad + "'", conn); conn.Open(); int i = (int)cmd.ExecuteScalar(); conn.Close(); return i; } private int getIdDelegation(String nomDele) { cmd = new SqlCommand("select ldDelegation from delegation where nomDelegation = '" + nomDele + "'", conn); conn.Open(); int i = (int)cmd.ExecuteScalar(); conn.Close(); return i; } private void listeAcad_SelectedIndexChanged(object sender, EventArgs e) { listeDele.Items.Clear(); String nomAcademie = listeAcad.Text; if (listeAcad.SelectedIndex != -1){ int idAcad = getIdAcademie(nomAcademie); try { cmd = new SqlCommand("select nomDelegation from delegation where ldAcademie='" + idAcad + "' ", conn); conn.Open(); dr = cmd.ExecuteReader(); if (dr.HasRows) { while (dr.Read()) { listeDele.Items.Add(dr["nomDelegation"]); } } listeDele.SelectedIndex = 0; dr.Close(); conn.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } } }
La classe professeur :
namespace TP7_Gestion_Etablissement { public partial class Professeur : Form { SqlConnection conn = new SqlConnection("server = DESKTOP-EIALG0J\\SQLEXPRESS; database = education; integrated security = SSPI"); SqlDataReader dr; SqlCommand cmd; BindingSource source = new BindingSource(); public Professeur() { InitializeComponent(); } private void Professeur_Load(object sender, EventArgs e) { remplirComboLycee(); navigation(); EtatC.Items.Add("célibataire"); EtatC.Items.Add("marié"); EtatC.Items.Add("divorcé"); EtatC.Items.Add("veuf"); EtatC.SelectedIndex = -1; listeLyceeCombo.SelectedIndex = -1; idC.Text = ""; nomC.Text = ""; emailC.Text = ""; nbrC.Text = ""; } private void remplirComboLycee() { try { cmd = new SqlCommand("select * from lycee", conn); conn.Open(); dr = cmd.ExecuteReader(); if (dr.HasRows) { while (dr.Read()) { listeLyceeCombo.Items.Add(dr["nomLycee"]); } } listeLyceeCombo.SelectedIndex = -1; conn.Close(); } catch (Exception ex) { // Affiche des erreurs MessageBox.Show(ex.Message); } } private void listeProfesseurs() { try { cmd = new SqlCommand("select ldProfesseur as 'ld Professeur', nomProfesseur as 'Nom Professeur', Email, EtatCivil as 'Etat Civil', nbrEnfants as 'Nombre Enfants', nomLycee as 'Lycee' from professeur, lycee where professeur.idLycee=lycee.idLycee", conn); conn.Open(); dr = cmd.ExecuteReader(); source.DataSource = dr; dv.DataSource = source; dr.Close(); conn.Close(); } catch (Exception ex) { // Affiche des erreurs MessageBox.Show(ex.Message); } } private void EtatC_SelectedIndexChanged(object sender, EventArgs e) { if (EtatC.Text == "célibataire") { nbrC.Text = ""; nbrC.Enabled = false; } else { nbrC.Enabled = true; } } private void navigation() { try { cmd = new SqlCommand("select ldProfesseur as 'ld Professeur', nomProfesseur as 'Nom Professeur', Email, EtatCivil as 'Etat Civil', nbrEnfants as 'Nombre Enfants', nomLycee as 'Lycee' from professeur, lycee where professeur.idLycee=lycee.idLycee", conn); conn.Open(); dr = cmd.ExecuteReader(); source.DataSource = dr; idC.DataBindings.Add(new Binding("text", source, "ld Professeur")); nomC.DataBindings.Add(new Binding("text", source, "Nom Professeur")); emailC.DataBindings.Add(new Binding("text", source, "Email")); nbrC.DataBindings.Add(new Binding("text", source, "Nombre Enfants")); EtatC.DataBindings.Add(new Binding("SelectedItem", source, "Etat Civil")); listeLyceeCombo.DataBindings.Add(new Binding("SelectedItem", source, "Lycee")); indexLabel.Text = (source.Position + 1).ToString(); totalLabel.Text = source.Count.ToString(); dv.DataSource = source; dr.Close(); conn.Close(); } catch (Exception ex) { // Affiche des erreurs MessageBox.Show(ex.Message); } } private void button1_Click_1(object sender, EventArgs e) { source.MoveFirst(); indexLabel.Text = (source.Position + 1).ToString(); totalLabel.Text = source.Count.ToString(); } private void button2_Click_1(object sender, EventArgs e) { source.MovePrevious(); indexLabel.Text = (source.Position + 1).ToString(); totalLabel.Text = source.Count.ToString(); } private void button3_Click_1(object sender, EventArgs e) { source.MoveNext(); indexLabel.Text = (source.Position + 1).ToString(); totalLabel.Text = source.Count.ToString(); } private void button4_Click_1(object sender, EventArgs e) { source.MoveLast(); indexLabel.Text = (source.Position + 1).ToString(); totalLabel.Text = source.Count.ToString(); } private void Vider_Click(object sender, EventArgs e) { EtatC.SelectedIndex = -1; listeLyceeCombo.SelectedIndex = -1; idC.Text = ""; nomC.Text = ""; emailC.Text = ""; nbrC.Text = ""; } private int getIdLyceen(String nomLycee) { cmd = new SqlCommand("select idLycee from lycee where nomLycee = '" + nomLycee + "'", conn); conn.Open(); int i = (int)cmd.ExecuteScalar(); conn.Close(); return i; } private void Ajouter_Click(object sender, EventArgs e) { int id = int.Parse(idC.Text); String nom = nomC.Text; String email = emailC.Text; String etat = EtatC.Text; int idLycee = getIdLyceen(listeLyceeCombo.Text); try { SqlCommand cmd = new SqlCommand("INSERT INTO professeur VALUES(" + id + " , '" + nom + "','" + email + "','" + etat + "'," + (nbrC.Text == "" ? "NULL" : "'" + nbrC.Text + "'") + ",'" + idLycee + "')", conn); conn.Open(); cmd.ExecuteNonQuery(); // Exécution de la requête SQL MessageBox.Show("L'insertion a été effectuée avec succè"); conn.Close(); listeProfesseurs(); } catch (Exception ex) { // Affiche des erreurs MessageBox.Show(ex.Message); } } private void Supprmier_Click(object sender, EventArgs e) { int id = int.Parse(idC.Text); try { cmd = new SqlCommand("delete from professeur where ldProfesseur =" + id + "", conn); conn.Open(); cmd.ExecuteNonQuery(); conn.Close(); listeProfesseurs(); MessageBox.Show("La suppression a été effectuée avec succè"); } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void Modifier_Click(object sender, EventArgs e) { int id = int.Parse(idC.Text); String nom = nomC.Text; String email = emailC.Text; String etat = EtatC.Text; int idLycee = getIdLyceen(listeLyceeCombo.Text); ; try { SqlCommand cmd = new SqlCommand("update professeur set nomProfesseur = '" + nom + "', Email='" + email + "', EtatCivil='" + etat + "', nbrEnfants=" + (nbrC.Text == "" ? "NULL" : "'" + nbrC.Text + "'") + ", idLycee='" + idLycee + "' where ldProfesseur =" + id + "", conn); conn.Open(); cmd.ExecuteNonQuery(); // Exécution de la requête SQL MessageBox.Show("La modification a été effectuée avec succè"); conn.Close(); listeProfesseurs(); } catch (Exception ex) { // Affiche des erreurs MessageBox.Show(ex.Message); } } } }