Mar.22
TP4 : Utilisation des Combobox et les Menus.
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 :
- Dans la base Cinema, ajoute la table Film :
Partie client :
- Créer l’interface suivante :
- Lier l’interface suivante à la commande Réalisateur du menu Gestion cinématique.
- Copier à partir du TP 3 les codes des boutons Ajouter, Modifier, Supprimer et vider.
- Lier l’interface suivante à la commande Film du menu Gestion cinématique.
- Utiliser le composant DateTimePicker pour la saisie de la date de sortie du film.
- Utiliser un Combobox qui va contenir la liste des noms des réalisateurs.
- Ecrire le code qui va remplir le Combobox par la liste des noms des réalisateurs.
- Désactiver l’édition d’éléments Combobox et choisir le nom du deuxième réalisateur comme une valeur par défaut du Combobox.
- Ecrire une fonction liste_film() qui va permettre d’affiche tous les enregistrements de la table film sur Cette fonction est appelée lors du démarrage de l’application et après l’effectuation de chaque opération.
- Changer les noms des colonnes du DataGridView.
- Ecrire le code du Bouton Ajouter qui va permettre d’ajouter un nouveau film. Un Messagebox sera affiché si l’opération est effectuée avec succès.
- Ecrire le code du Bouton Modifier qui va permettre de modifier un film. Un Messagebox sera affiché si l’opération est effectuée avec succès.
- Ecrire le code du Bouton Supprimer qui va permettre de supprimer un film. Un Messagebox sera affiché si l’opération est effectuée avec succès.
- Ecrire le code du Bouton Vider qui va permettre de vider les champs de saisie et d’initialise la date de sortie du film.
- Ecrire le code du Bouton à propos pour qu’il affiche le message suivant :
Correction
La classe Menu
namespace TP4_GESTION_CINEMA { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void réalisateurToolStripMenuItem_Click(object sender, EventArgs e) { Realisateur r = new Realisateur(); r.Show(); } private void quitterToolStripMenuItem_Click(object sender, EventArgs e) { Application.Exit(); } private void filmToolStripMenuItem_Click(object sender, EventArgs e) { Film f = new Film(); f.Show(); } private void aProposToolStripMenuItem_Click(object sender, EventArgs e) { MessageBox.Show("Gestion cinématique version 1.0"); } } }
La classe Réalisateur
namespace TP4_GESTION_CINEMA { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void réalisateurToolStripMenuItem_Click(object sender, EventArgs e) { Realisateur r = new Realisateur(); r.Show(); } private void quitterToolStripMenuItem_Click(object sender, EventArgs e) { Application.Exit(); } private void filmToolStripMenuItem_Click(object sender, EventArgs e) { Film f = new Film(); f.Show(); } private void aProposToolStripMenuItem_Click(object sender, EventArgs e) { MessageBox.Show("Gestion cinématique version 1.0"); } } } namespace TP4_GESTION_CINEMA { public partial class Realisateur : Form { public Realisateur() { InitializeComponent(); } private void Quitter_Click(object sender, EventArgs e) { Application.Exit(); } private void Vider_Click(object sender, EventArgs e) { id_realisateur.Text = ""; nom_realisateur.Text = ""; } private void Ajouter_Click(object sender, EventArgs e) { int id = int.Parse(id_realisateur.Text); String nom = nom_realisateur.Text; SqlConnection conn = new SqlConnection("server = DESKTOP-EIALG0J\\SQLEXPRESS; database = cinema; integrated security = SSPI"); try { SqlCommand cmd = new SqlCommand("INSERT INTO realisateur VALUES(" + id +" , '" + nom + "')", conn); conn.Open(); cmd.ExecuteNonQuery(); // Exécution de la requête SQL liste_realisateur(); MessageBox.Show("L'insertion a été effectuée avec succè"); } catch (Exception ex) { // Affiche des erreurs MessageBox.Show(ex.Message); } finally { // Fermeture de la connexion à la base de données conn.Close(); } } private void Modifier_Click(object sender, EventArgs e) { int id = int.Parse(id_realisateur.Text); String nom = nom_realisateur.Text; SqlConnection conn = new SqlConnection("server = DESKTOP-EIALG0J\\SQLEXPRESS; database = cinema; integrated security = SSPI"); try { SqlCommand cmd = new SqlCommand("update realisateur set nom_realisateur = '"+nom+"' where id_realisateur ="+id+"", conn); conn.Open(); cmd.ExecuteNonQuery(); // Exécution de la requête SQL liste_realisateur(); MessageBox.Show("La modification a été effectuée avec succè"); } catch (Exception ex) { // Affiche des erreurs MessageBox.Show(ex.Message); } finally { // Fermeture de la connexion à la base de données conn.Close(); } } private void Supprimer_Click(object sender, EventArgs e) { int id = int.Parse(id_realisateur.Text); SqlConnection conn = new SqlConnection("server = DESKTOP-EIALG0J\\SQLEXPRESS; database = cinema; integrated security = SSPI"); try { SqlCommand cmd = new SqlCommand("delete from realisateur where id_realisateur =" + id + "", conn); conn.Open(); cmd.ExecuteNonQuery(); // Exécution de la requête SQL liste_realisateur(); MessageBox.Show("La suppression a été effectuée avec succè"); } catch (Exception ex) { // Affiche des erreurs MessageBox.Show(ex.Message); } finally { // Fermeture de la connexion à la base de données conn.Close(); } } private void liste_realisateur() { SqlDataReader dr; SqlConnection conn2 = new SqlConnection("server = DESKTOP-EIALG0J\\SQLEXPRESS; database = cinema; integrated security = SSPI"); try { SqlCommand cmd = new SqlCommand("select id_realisateur as 'Id du realisateur' , nom_realisateur as 'Nom du realisateur' from realisateur", conn2); conn2.Open(); dr = cmd.ExecuteReader(); BindingSource source = new BindingSource(); source.DataSource = dr; dataGridView1.DataSource = source; //dataGridView1.Columns[0].HeaderText = "Id du realisateur"; //dataGridView1.Columns[1].HeaderText = "Nom du realisateur"; } catch (Exception ex) { // Affiche des erreurs MessageBox.Show(ex.Message); } finally { // Fermeture de la connexion à la base de données conn2.Close(); } } private void Form1_Load(object sender, EventArgs e) { liste_realisateur(); } } }
La classe Film
namespace TP4_GESTION_CINEMA { public partial class Film : Form { public Film() { InitializeComponent(); } private void Film_Load(object sender, EventArgs e) { combo_NomRealisateur(); liste_film(); } private void Ajouter_Click(object sender, EventArgs e) { int id = int.Parse(idFilm.Text); String nomFilm = titreFilm.Text; int duree = int.Parse(dureeFilm.Text); String d = dateSortie.Value.ToString("yyyy-MM-dd"); String nomRealisateur = listeRealisateur.Text; int id_re = getIdRealisateur(nomRealisateur); SqlConnection conn = new SqlConnection("server = DESKTOP-EIALG0J\\SQLEXPRESS; database = cinema; integrated security = SSPI"); try { SqlCommand cmd = new SqlCommand("INSERT INTO film VALUES(" + id + " , '" + nomFilm + "','"+duree+"','"+d+"','"+id_re+"')", conn); conn.Open(); cmd.ExecuteNonQuery(); // Exécution de la requête SQL liste_film(); MessageBox.Show("L'insertion a été effectuée avec succè"); } catch (Exception ex) { // Affiche des erreurs MessageBox.Show(ex.Message); } finally { // Fermeture de la connexion à la base de données conn.Close(); } } private void liste_film() { SqlDataReader dr; SqlConnection conn2 = new SqlConnection("server = DESKTOP-EIALG0J\\SQLEXPRESS; database = cinema; integrated security = SSPI"); try { SqlCommand cmd = new SqlCommand("select id_film as 'Numéro du film' , titre_film as 'Titre du film', duree_film as 'Duree du film (minutes)', dateSortie_film as 'Date de sortie du film', nom_realisateur as 'Nom du realisateur' from film, realisateur where film.id_realisateur=realisateur.id_realisateur", conn2); conn2.Open(); dr = cmd.ExecuteReader(); BindingSource source = new BindingSource(); source.DataSource = dr; dataGridView1.DataSource = source; } catch (Exception ex) { // Affiche des erreurs MessageBox.Show(ex.Message); } finally { // Fermeture de la connexion à la base de données conn2.Close(); } } private void combo_NomRealisateur() { SqlDataReader dr; SqlConnection conn2 = new SqlConnection("server = DESKTOP-EIALG0J\\SQLEXPRESS; database = cinema; integrated security = SSPI"); try { SqlCommand cmd = new SqlCommand("select nom_realisateur from realisateur",conn2); conn2.Open(); dr = cmd.ExecuteReader(); if (dr.HasRows) { while (dr.Read()) { listeRealisateur.Items.Add(dr["nom_realisateur"]); } } listeRealisateur.SelectedIndex = 0; //faire un combobox non modifiable //listeRealisateur.DropDownStyle = ComboBoxStyle.DropDownList; } catch (Exception ex) { // Affiche des erreurs MessageBox.Show(ex.Message); } finally { // Fermeture de la connexion à la base de données conn2.Close(); } } private int getIdRealisateur(String nomRealisateur) { SqlConnection conn2 = new SqlConnection("server = DESKTOP-EIALG0J\\SQLEXPRESS; database = cinema; integrated security = SSPI"); SqlCommand cmd = new SqlCommand("select id_realisateur from realisateur where nom_realisateur = '" + nomRealisateur + "'", conn2); conn2.Open(); int i = (int)cmd.ExecuteScalar(); return i; } private void Modifier_Click(object sender, EventArgs e) { int id = int.Parse(idFilm.Text); String nomFilm = titreFilm.Text; int duree = int.Parse(dureeFilm.Text); String d = dateSortie.Value.ToString("yyyy-MM-dd"); String nomRealisateur = listeRealisateur.Text; int id_re = getIdRealisateur(nomRealisateur); SqlConnection conn = new SqlConnection("server = DESKTOP-EIALG0J\\SQLEXPRESS; database = cinema; integrated security = SSPI"); try { SqlCommand cmd = new SqlCommand("update film set titre_film = '" + nomFilm + "', duree_film='" + duree + "', dateSortie_film='"+d+"', id_realisateur='"+id_re+"' where id_film =" + id + "", conn); conn.Open(); cmd.ExecuteNonQuery(); // Exécution de la requête SQL liste_film(); MessageBox.Show("La modification a été effectuée avec succè"); } catch (Exception ex) { // Affiche des erreurs MessageBox.Show(ex.Message); } finally { // Fermeture de la connexion à la base de données conn.Close(); } } private void Vider_Click(object sender, EventArgs e) { idFilm.Text = ""; titreFilm.Text = ""; dureeFilm.Text = ""; dateSortie.Text = DateTime.Now.Date.ToString(); listeRealisateur.SelectedIndex = 0; } private void Supprimier_Click(object sender, EventArgs e) { int id = int.Parse(idFilm.Text); SqlConnection conn = new SqlConnection("server = DESKTOP-EIALG0J\\SQLEXPRESS; database = cinema; integrated security = SSPI"); try { SqlCommand cmd = new SqlCommand("delete from film where id_film =" + id + "", conn); conn.Open(); cmd.ExecuteNonQuery(); liste_film(); MessageBox.Show("La suppression a été effectuée avec succè"); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { conn.Close(); } } } }