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);
}
}
}
}
