private void refreshCurrentTracks() { // Définition d'une variable pour les boucles int i; bool presenceGenres = false; bool presenceArtistes = false; // Réactualisation du datagrid suivant les arguments Genre, Artistes et album de la playlist oSqlDataAdapterTracks.SelectCommand.CommandText = "SELECT * FROM Tracks"; // Si il y a des éléments de Genre sélectionnés if (listGenres.SelectedItems.Count > 0) { // Bool de détection de présence presenceGenres = true; // Ajout du mot clef WHERE à la requete oSqlDataAdapterTracks.SelectCommand.CommandText += " WHERE"; // Pour chaques Genres for (i = 0; i <= listGenres.SelectedItems.Count - 1; i++) { if (i == 0) oSqlDataAdapterTracks.SelectCommand.CommandText += " ( GENRE ='" + listGenres.SelectedItems[i] + "'"; else oSqlDataAdapterTracks.SelectCommand.CommandText += " OR GENRE ='" + listGenres.SelectedItems[i] + "'"; } oSqlDataAdapterTracks.SelectCommand.CommandText += " )"; } // Si il y a des éléments des Artistes sélectionnés if (listArtistes.SelectedItems.Count > 0) { // Bool de détection de présence presenceArtistes = true; // Si il y a des Genres déjà implémentés if (presenceGenres.Equals(true)) oSqlDataAdapterTracks.SelectCommand.CommandText += " AND"; else oSqlDataAdapterTracks.SelectCommand.CommandText += " WHERE"; // Pour chaques Artistes for (i = 0; i <= listArtistes.SelectedItems.Count - 1; i++) { if (i == 0) oSqlDataAdapterTracks.SelectCommand.CommandText += " ( Artist ='" + listArtistes.SelectedItems[i] + "'"; else oSqlDataAdapterTracks.SelectCommand.CommandText += " OR Artist ='" + listArtistes.SelectedItems[i] + "'"; } oSqlDataAdapterTracks.SelectCommand.CommandText += " )"; } // Si il y a des éléments des Albums sélectionnés if (listAlbums.SelectedItems.Count > 0) { // Si il y a des Genres déjà implémentés if (presenceGenres.Equals(true)) oSqlDataAdapterTracks.SelectCommand.CommandText += " AND"; else if (presenceArtistes.Equals(true)) oSqlDataAdapterTracks.SelectCommand.CommandText += " AND"; else oSqlDataAdapterTracks.SelectCommand.CommandText += " WHERE"; // Pour chaques Albums for (i = 0; i <= listAlbums.SelectedItems.Count - 1; i++) { if (i == 0) oSqlDataAdapterTracks.SelectCommand.CommandText += " ( Album ='" + listAlbums.SelectedItems[i] + "'"; else oSqlDataAdapterTracks.SelectCommand.CommandText += " OR Album ='" + listAlbums.SelectedItems[i] + "'"; } oSqlDataAdapterTracks.SelectCommand.CommandText += " )"; } oSqlDataAdapterTracks.Fill(oDataSet, "CurrentTracks"); dataGrid.DataSource = oDataSet.Tables["CurrentTracks"]; oDataSet.Tables.Remove("CurrentTracks"); }