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 :

Date et GridView


Sujet :

ASP.NET

  1. #1
    Nouveau membre du Club
    Inscrit en
    Octobre 2009
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 54
    Points : 38
    Points
    38
    Par défaut Date et GridView
    Bonjour à tous.

    je me permet de vous envoyer un post car j'ai un souci.
    Je bosse avec Visual Studio 2010. Je débute.

    J'ai un gridview lié à une sqlDatasource. Lors du chargement de ma page, je récupère une date dans ma BDD Oracle qui me permet de faire ma sélection pour le Gridview (la récupération se passe bien).
    Mon problème est quand le code arrive sur GridView.DataBind().
    Lorsque je lance ma page, j'ai une erreur "ORA-01843:not a valid month."
    Mon problème vient à priori du fait que mon format de date n'est pas correct mais je n'arrive pas à le résoudre.

    Je vous met le code de ma page ASPX avec la définition du gridview:

    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
     
     <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="true" 
            DataSourceID="SqlDataSource1">
            <Columns>
                <asp:BoundField DataField="ID_EXECUTER" HeaderText="ID_EXECUTER" 
                    ReadOnly="True" SortExpression="ID_EXECUTER" />
                <asp:BoundField DataField="DECALAGE_EXECUTER" HeaderText="DECALAGE_EXECUTER" 
                    ReadOnly="True" SortExpression="DECALAGE_EXECUTER" />
                <asp:BoundField DataField="LIB_TYPE_OP" HeaderText="LIB_TYPE_OP" 
                    ReadOnly="True" SortExpression="LIB_TYPE_OP" />
                <asp:BoundField DataField="RANG_LIGNE_FT" HeaderText="RANG_LIGNE_FT" 
                    ReadOnly="True" SortExpression="RANG_LIGNE_FT" />
                <asp:BoundField DataField="LIB_STUCCO" HeaderText="LIB_STUCCO" ReadOnly="True" 
                    SortExpression="LIB_STUCCO" />
                <asp:BoundField DataField="LIB_PROG" HeaderText="LIB_PROG" ReadOnly="True" 
                    SortExpression="LIB_PROG" />
                <asp:BoundField DataField="LIB_TYPE_BAIN" HeaderText="LIB_TYPE_BAIN" 
                    ReadOnly="True" SortExpression="LIB_TYPE_BAIN" />
            </Columns>
        </asp:GridView>
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:PCCConnectionStringBDD %>"
     
            ProviderName="<%$ ConnectionStrings:PCCConnectionStringBDD.ProviderName %>" 
            SelectCommand="SELECT * FROM ADMIN.EXECUTER INNER JOIN ADMIN.PLATEAU ON ADMIN.EXECUTER.ID_PLATEAU_EXECUTER = ADMIN.PLATEAU.ID_PLATEAU INNER JOIN ADMIN.LIGNE_FT ON ADMIN.EXECUTER.ID_LIGNE_FT_EXECUTER = ADMIN.LIGNE_FT.ID_LIGNE_FT INNER JOIN ADMIN.PROG ON ADMIN.EXECUTER.ID_PROG_EXECUTER = ADMIN.PROG.ID_PROG INNER JOIN ADMIN.STUCCO ON ADMIN.PROG.ID_STUCCO_PROG = ADMIN.STUCCO.ID_STUCCO INNER JOIN ADMIN.TYPE_BAIN ON ADMIN.LIGNE_FT.ID_TYPE_BAIN_LIGNE_FT = ADMIN.TYPE_BAIN.ID_TYPE_BAIN INNER JOIN ADMIN.TYPE_OP ON ADMIN.LIGNE_FT.ID_TYPE_OP_LIGNE_FT = ADMIN.TYPE_OP.ID_TYPE_OP WHERE (ADMIN.EXECUTER.ID_PLATEAU_EXECUTER = :MonId) AND (ADMIN.EXECUTER.DATE_EXECUTER &gt;= :MaDate) ORDER BY ADMIN.LIGNE_FT.RANG_LIGNE_FT">
    </asp:SqlDataSource>
    et le code de mon page_load

    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
     
             protected void Page_Load(object sender, EventArgs e)
            {
                ORDFAB newOrdFab = new ORDFAB();
     
                //Récupération des variables de l'URL
                tbIDRef.Text = Request.QueryString[0];
                tbType.Text = Request.QueryString[1];
     
                //on va récupérer les données à partir du plateau ou de l'OF
                switch (tbType.Text)
                {
                    case "Plateau":
                        //on cherche la dates entrée de ce plateau dans ORDFAB
                        string DateEntree;
                        DateTime MaNouvelleDate;
     
                        newOrdFab = OrdFabMetier.ORDFABOFPlateau(Int16.Parse(tbIDRef.Text));
                        DateEntree = newOrdFab.ENTREE_ORDFAB.ToString();
                        IFormatProvider culture = new System.Globalization.CultureInfo("fr-FR", true);
                        MaNouvelleDate = DateTime.Parse(DateEntree, culture, System.Globalization.DateTimeStyles.AssumeLocal);
     
                        //on recupère les lignes EXECUTER à partir de la date d'entrée du plateau et de l'ID plateau
                        SqlDataSource1.SelectParameters.Add("MonId", tbIDRef.Text);
                        SqlDataSource1.SelectParameters.Add("MaDate",MaNouvelleDate.ToShortDateString());
                        GridView1.DataBind();
                        break;
     
                    case "OF":
                        newOrdFab = OrdFabMetier.ORDFABSelect(tbIDRef.Text);
     
                        //on recupère les lignes EXECUTER à partir de la date d'entrée et de sortie du plateau et de l'ID plateau
     
                        break;
                    default:
                        break;
                }
            }
    Je souhaite que ma valeur MaNouvelleDate soit le second paramètre.
    Comment puis je faire pour convertir ma datetime (dd/MM/yyyy hh:mm:ss) en "dMM/dd/yyyy hh:mm:ss" puor ne plus avoir mon problème?

    Je ne trouve pas de réponse sur le net.

    Je ne sais pas si c'est très clair. Merci pour votre aide.

  2. #2
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Salut,
    Citation Envoyé par Sophie64 Voir le message
    Comment puis je faire pour convertir ma datetime (dd/MM/yyyy hh:mm:ss) en "dMM/dd/yyyy hh:mm:ss" puor ne plus avoir mon problème?
    Tu as une date au format fr-FR que tu veux convertir en un format anglophone. Cela entre un peut en contradiction avec
    IFormatProvider culture = new System.Globalization.CultureInfo("fr-FR", true)
    Avant d'appliquer une conversion tu dois être certaine du format d'entrée. Cela peut être facile à deviner par défaut par le système lorsque le jour a une valeur supérieur à 12. Là tu forces le format en disant au système (par exemple) la valeur 23 c'est le mois. Donc il t'envoi une erreur.

    Question: d'où vient ta donnée? S'agit-il d'une saisie manuelle dans un formulaire ou d'une donnée en base? Si c'est une donnée en base tu ne devrais pas avoir à modifier le format car cette information est normalement "connue" lors de la sauvegarde. La restitution devrait se faire correctement sans intervention de ta part.

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  3. #3
    Nouveau membre du Club
    Inscrit en
    Octobre 2009
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 54
    Points : 38
    Points
    38
    Par défaut
    mes données proviennent d'une BD.

    J'ai trouvé en fait le To_Date il faut que j ele mette dans ma requête dans le sqlDataSrouce et pas ailleurs.
    Désolée ma question.
    Merci pour voter aide

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

Discussions similaires

  1. Problème de date avec GridView
    Par harry25 dans le forum ASP.NET
    Réponses: 16
    Dernier message: 24/09/2007, 16h17
  2. format de date dans un gridview
    Par intissar_g dans le forum ASP.NET
    Réponses: 1
    Dernier message: 01/08/2007, 11h15
  3. format de date dans un gridview
    Par intissar_g dans le forum ASP.NET
    Réponses: 8
    Dernier message: 24/07/2007, 15h20
  4. formater une date dans un gridview
    Par intissar_g dans le forum ASP.NET
    Réponses: 8
    Dernier message: 09/07/2007, 16h02
  5. [C#][2.0][SQL Server 2005] Format date dans GridView
    Par just1980 dans le forum ASP.NET
    Réponses: 4
    Dernier message: 13/11/2006, 22h45

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