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

ASP.NET Discussion :

Gestion des dates dans un data source


Sujet :

ASP.NET

  1. #1
    Membre habitué Avatar de blasil64
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 324
    Points : 136
    Points
    136
    Par défaut Gestion des dates dans un data source
    Bonsoir à tous,
    Je teste un peu l'ASP.NET en créant un site web sur les actualités du cinéma. J'aimerais avoir une vue enfant qui récupère mes données de ma base. Ce que je dois récupérer, c'est les sorties de la semaine grâce à mon champ 'date_sortie_cinema' qui est du type date. je veux configurer mon data source, mais je ne sais pas quoi choisir quand je sélectionne le where...

    En PHP, ma requête ressemblait à cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select ... from maTable where('f.datetime_sortie_cinema > ?', date('Y-m-d H:i:s', time() + 86400 * 3)) AndWhere('f.datetime_sortie_cinema < ?', date('Y-m-d', time() + 86400 * 6));
    Mais au niveau de la source, je ne sais pas quoi mettre... None, queryString, ou un autre ?

    Merci d'avance pour vos réponses !

  2. #2
    Expert confirmé
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Points : 4 066
    Points
    4 066
    Par défaut
    Bonjour,

    Avec une DataSource c'est assez simple à gérer en fait. Le principe est à peu près le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <asp:SqlDataSource SelectCommand="SELECT *  FROM [Table] WHERE ( ([DateStart] >= @DateStart) AND  ([DateEnd] <= @DateEnd))" >
       <SelectParameters>
         <asp:Parameter Name="DateStart" Type="DateTime" />
         <asp:Parameter Name="DateEnd" Type="DateTime" />
       </SelectParameters>
    </asp:SqlDataSource>
    Ensuite, tu as différents types de paramètes. Tu peux tirer les valeurs des deux dates depuis la Session, les Cookies, la QueryString, de contrôles de saisie dans la page (donc pour les dates choisies par l'utilisateur). Un petit aperçu sur MSDN.

    En espérant t'avoir aidé.

  3. #3
    Membre habitué Avatar de blasil64
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 324
    Points : 136
    Points
    136
    Par défaut
    Bonjour,
    Tout d'abord, merci pour ta réponse !
    Ensuite, je précise juste que mes deux dates que je dois passer en paramètre est un champ dans ma table 'film'. Lorsqu'un film sort le 19 mai 2010, je le stocke en type date : 2010-05-19.
    Arrivé le lundi, il faut pouvoir le voir sur mon site, vu que c'est une sortie de la semaine et qu'on le voit jusqu'au dimanche suivant. Voici ce que j'avais configurer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <asp:SqlDataSource ID="csSortiesCinemaSemaine" runat="server" 
            ConnectionString="<%$ ConnectionStrings:crimoviesConnectionString %>" 
            SelectCommand="SELECT 'mes_champs' FROM 'ma_table' WHERE (([datetime_sortie_cinema] &gt; @datetime_sortie_cinema) AND ([datetime_sortie_cinema] &lt; @datetime_sortie_cinema2)) ORDER BY [datetime_sortie_cinema]">
            <SelectParameters>
                <asp:QueryStringParameter DbType="Date" Name="datetime_sortie_cinema" 
                    QueryStringField="date('Y-m-d H:i:s', time() - 86400 * 5))" />
                <asp:QueryStringParameter DbType="Date" Name="datetime_sortie_cinema2" 
                    QueryStringField="date('Y-m-d H:i:s', time() - 86400 * 3))" />
            </SelectParameters>
        </asp:SqlDataSource>
    En dessous j'ai mis un data list, qui dont le data source est bien csSortiesCinemaSemaine, mais je n'ai rien qui s'affiche alors que j'ai bien des films présent dans ma base (+ de 600 films).
    J'ai donc deux questions qui me viennent en tête :
    1 - Si jamais aucun film ne sort dans la semaine au cinéma, comment faire la condition pour écrire un joli message 'Désolé, aucun film ne sort cette semaine...' ?
    2- Comment bien tout configurer pour avoir ma liste de films ?

    Désolé, ça risque d'être bateau pour certains, mais je débute dans l'ASP.NET, et il est vrai que je ne le manie pas très bien mais je cherche de l'aide pour apprendre à le manier.

    Merci d'avance pour votre aide !

  4. #4
    Expert confirmé
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Points : 4 066
    Points
    4 066
    Par défaut
    Citation Envoyé par blasil64 Voir le message
    1 - Si jamais aucun film ne sort dans la semaine au cinéma, comment faire la condition pour écrire un joli message 'Désolé, aucun film ne sort cette semaine...' ?
    Pour cela tu peux utiliser un EmptyDataTemplate.


    Citation Envoyé par blasil64 Voir le message
    2- Comment bien tout configurer pour avoir ma liste de films ?
    En fait, si j'ai bien compris tu te bases sur la date du jour pour filtrer tes films et non sur la saisie de l'utilisateur (exemple : sélection d'une date de début et de fin via un Calendar). Dans ce cas il faut filtrer tes dates directement dans la clause Where de ta requête, sans passer par des paramètres de ta DataSource.

    Sinon, pour l'utilisation d'une DataSource avec des paramètres de filtrage, je te renvoies aux nombreux tutos disponibles sur le net.

    En espérant t'avoir aidé.

  5. #5
    Membre habitué Avatar de blasil64
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 324
    Points : 136
    Points
    136
    Par défaut
    Bonjour,
    J'ai réussi la partie de ma requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     <asp:SqlDataSource ID="csSortiesCinemaSemaine" runat="server"
                ConnectionString="<%$ ConnectionStrings:crimoviesConnectionString %>" 
                SelectCommand="SELECT [mes_champs] FROM [ma_table] WHERE (([datetime_sortie_cinema] > (getDate() - 4)) AND ([datetime_sortie_cinema] < (getDate() + 3))) ORDER BY [datetime_sortie_cinema]" >
            </asp:SqlDataSource>
    Après j'utilise un dataList :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <asp:DataList ID="DataList1" runat="server" DataSourceID="csSortiesCinemaSemaine">
                <ItemTemplate>
                        <div style="padding-top:23px;">
                            <asp:Label ID="titreLabel" runat="server" Text='<%# Eval("titre") %>' />
                            <br />...
    Je cherche maintenant à gérer le cas où mon champ ne contient aucune valeur, par exemple mon champ (reprise_cinema) qui contient une valeur si le film a été repris au cinéma, j'affiche sinon je n'affiche pas. J'ai tenté cela mais ça ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <% if ("date_reprise_cinema" != "") {%>
                                Repris au cinéma le
                                <asp:Label ID="date_reprise_cinemaLabel" runat="server" 
                                    Text='<%# Eval("date_reprise_cinema") %>' />
                                <br />
                            <% }%>
    Merci d'avance pour votre aide.

Discussions similaires

  1. [1.x] [1.0.12]Gestion des dates dans un environnement international
    Par pmithrandir dans le forum Symfony
    Réponses: 1
    Dernier message: 16/10/2009, 11h20
  2. Réponses: 11
    Dernier message: 22/05/2008, 15h50
  3. gestion des dates dans formulaires
    Par ln0331 dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 06/12/2007, 12h18
  4. gestion des dates dans un formulaire
    Par clement42 dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 18/05/2006, 11h34

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