private void listGenres_Click(object sender, EventArgs e) { SqlDataReader rdr = null; string strArtist = null; SqlCommand cmd = null; string lesGenres = null; listArtistes.Items.Clear(); listAlbums.Items.Clear(); // REFRESH DES ARTISTES POUR LE GENRE SELECTIONNE MessageBox.Show(listGenres.SelectedItems[0].ToString()); // Détection si il y a plusieurs Genres sélectionnés if (listGenres.SelectedItems.Count > 1) { // Définition du premier argument Genre lesGenres = listGenres.SelectedItems[1].ToString(); MessageBox.Show("PLOP" + listGenres.SelectedItems[1].ToString()); // Parcours des autres arguments OR Genre = 'plop' OR Genre = 'plop2' ... for (int i = 1; i < listPlaylists.SelectedItems.Count; i++) { lesGenres = lesGenres + " OR Genre = '" + listPlaylists.Items[i] + "'"; } } else { lesGenres = listGenres.SelectedItems[0].ToString(); } if(listPlaylists.SelectedItem.ToString().Equals("Toutes les playlists")) { // Requete pour la récupération des artistes en fonctions des playlists et du Genre strArtist = "SELECT DISTINCT Artist FROM Tracks WHERE Genre = @Genre"; } else { // Requete pour la récupération des artistes en fonctions de la playlist et du Genre strArtist = "SELECT DISTINCT Artist FROM Tracks WHERE Tracks.TrackID IN( SELECT TrackID FROM PlaylistDetails WHERE PlaylistID = @IDPlaylist ) AND Genre = @Genre"; cmd.Parameters.Add("@IDPlaylist", SqlDbType.Int).Value = searchPlaylistsID(listPlaylists.SelectedItem.ToString()); } try { // Instanciation de la requete SQL avec la connection à la base de données cmd = new SqlCommand(strArtist, oConnection); // Renseignement des différents paramètres cmd.Parameters.Add("@Genre", SqlDbType.NVarChar).Value = lesGenres.ToString(); MessageBox.Show(lesGenres); MessageBox.Show(strArtist); // Ouverture de la base de données oConnection.Open(); // Execution de la commande SQL rdr = cmd.ExecuteReader(); while (rdr.Read()) { listArtistes.Items.Add(rdr[0]); } } finally { // Fermeture du SQLReader if (rdr != null) { rdr.Close(); } // Fermeture de la connection if (oConnection != null) { oConnection.Close(); } } //MessageBox.Show(strArtist); // Définition de la jointure entre Tracks et PlaylistsDetails //SqlDataAdapter oSqlDataAdapterArtistPlaylist = new SqlDataAdapter(strArtist, oConnection); // Importation de la jointure dans Adapter //oSqlDataAdapterArtistPlaylist.Fill(oDataSet, "ArtistPlaylist"); /* for (int i = 0; i < oDataSet.Tables["ArtistPlaylists"].Rows.Count; i++) { listArtistes.Items.Add(oDataSet.Tables["ArtistPlaylists"].Rows[i][0].ToString()); listArtistes.SetSelected(i, true); } oDataSet.Tables.Remove("IDPlaylist"); */ } }