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