All pastes #912881 Raw Edit

Unnamed

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