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");
*/
}
}