IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ADO.NET Discussion :

Affichage des données en fonction du mois en cours


Sujet :

ADO.NET

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 7
    Points : 6
    Points
    6
    Par défaut Affichage des données en fonction du mois en cours
    Bonjour,
    Je rencontre actuellement quelques difficultés sur une page aspx et une base SQL server.
    Je m'explique :
    Quand ma page s'affiche, j'ai un dropdownlist qui contient les mois de l'année "en dur" et un gridview pour recevoir mes données.
    Le dropdownlist (drMois) affiche automatiquement à l'ouverture le mois en cours.Ce que je souhaite faire, c'est qu'en fonction de ce mois, la base de données n'affiche les evennements concernant que le mois en cours.
    Dans ma colonne objet, je découpe la chaine de caractères, afin de ne garder que le mois en toute lettres et le comparer avec le mois se trouvant dans le dropdownlist, jusque là ça va à peu près.J'obtient une erreur lors de ma requête avec LIKE
    Syntaxe incorrecte vers le mois en cours
    Voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    DataSet ds = new DataSet();
        DataSet ds2 = new DataSet();
        SqlConnection conn;
     
        private int Counter
        {
            get
            {
                return this.ViewState["counter"] == null ? 0 :
                    (int)this.ViewState["counter"];
            }
            set { this.ViewState.Add("counter", value); }
        }
     
        protected void connect()
        {
            string SQL = "SELECT [theme],[objet] FROM Evennements ORDER BY date"  ;
            conn = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=|" +
            "DataDirectory|\\Database.mdf;Integrated Security=True;User Instance=True");
            SqlDataAdapter adapter = new SqlDataAdapter();
            adapter.SelectCommand = new SqlCommand(SQL, conn);
            adapter.Fill(ds);
        }
     
     
        protected void Page_Load(object sender, EventArgs e)
        {
            connect();
    // detection du mois actuel puis selection dans la dropdownlist du mois en toute lettre
            string dateComp = Convert.ToString(DateTime.Now);
            string dateRac = dateComp.Remove(10);
            char[] charSeparators = new char[] { '/' };
            string[] result;
            result = dateRac.Split(charSeparators, StringSplitOptions.None);
            string mois = result[1];
            switch (mois)
            {
                case "01":
                    drMois.SelectedValue = "Janvier";
                    break;
     
                case "02":
                    drMois.SelectedValue = "Fevrier";
                    break;
     
                case "03":
                    drMois.SelectedValue = "Mars";
                    break;
     
                case "04":
                    drMois.SelectedValue = "Avril";
                    break;
     
                case "05":
                    drMois.SelectedValue = "Mai";
                    break;
     
                case "06":
                    drMois.SelectedValue = "Juin";
                    break;
     
                case "07":
                    drMois.SelectedValue = "Juillet";
                    break;
     
                case "08":
                    drMois.SelectedValue = "Août";
                    break;
     
                case "09":
                    drMois.SelectedValue = "Septembre";
                    break;
     
                case "10":
                    drMois.SelectedValue = "Octobre";
                    break;
     
                case "11":
                    drMois.SelectedValue = "Novembre";
                    break;
     
                case "12":
                    drMois.SelectedValue = "Décembre";
                    break;
     
                default:
                    Response.Write(("<script>alert('Erreur !')</script>"));
                    break;
     
            }
     
            DataRow dr = ds.Tables[0].Rows[Counter];
            string dateActu = Convert.ToString(dr[1]);
            string[] resultsep;
            char[] Separators = new char[] { ' ' };
            resultsep = dateActu.Split(Separators, StringSplitOptions.None);
            string moisrecup = resultsep[3];
     
            if (moisrecup != drMois.SelectedValue)
            {
                lbMC.Text = moisrecup;
                lbDR.Text = drMois.SelectedValue;
            }
     
            string SQL = "SELECT [theme],[objet] FROM Evennements WHERE objet LIKE % " + drMois.SelectedValue +'%';
            conn = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=|" +
            "DataDirectory|\\Database.mdf;Integrated Security=True;User Instance=True");
            SqlDataAdapter adapter = new SqlDataAdapter();
            adapter.SelectCommand = new SqlCommand(SQL, conn);
            adapter.Fill(ds2);
     
            GridView1.DataSource = ds2;
            GridView1.DataBind();
     
            string jour = DateTime.Now.ToLongDateString();
            lbDate.Text = jour;
        }

    Quelqu'un aurait-il une petite idée ?
    Merci d'avance

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 7
    Points : 6
    Points
    6
    Par défaut Affichage des données en fonction du mois en cours
    RE-bonjour,

    ça y est, j'ai trouvé la réponse à ma question...
    J'obtenais une erreur avec ma requête lors du remplissage du deuxième dataset.C'était juste la syntaxe au niveau du LIKE :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string SQL = "SELECT [theme],[objet] FROM Evennements WHERE objet LIKE %" + drMois.SelectedValue + '%' ;
    au lieu de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string SQL = "SELECT [theme],[objet] FROM Evennements WHERE objet LIKE '%" + drMois.SelectedValue + "%'" ;
    ce sont les '" "'" qui ont fait la différence...

    En espérant que cela puisse servir à quelqu'un

    @bientôt

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 08/04/2013, 17h15
  2. Réponses: 1
    Dernier message: 31/08/2009, 05h17
  3. [Requête][2007]Affichage des données 1 mois avant échéance
    Par Tourlou57 dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 17/04/2007, 10h07
  4. [Conception] Afficher des données en fonction du mois.
    Par fabrice88 dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 05/06/2006, 10h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo