All pastes #911953 Raw Edit

Untitled

public text v1 · immutable
·published 2008-02-21 00:53 UTC
rendered paste body
 private void listGenres_SelectedIndexChanged(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


            // Détection si il y a plusieurs Genres sélectionnés
            if (listGenres.SelectedItems.Count > 1)
            {
                // Définition du premier argument Genre
                lesGenres = "Genre = '" + listPlaylists.Items[0] + "' ";

                // 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] + "'";
                }
            }
                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";
                }
                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";
                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;

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