All pastes #911993 Raw Edit

Unnamed

public text v1 · immutable
·published 2008-02-21 01:36 UTC
rendered paste body
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");
            */            
        }
    }