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 :

Probleme de cast pour un newbie en PObjet.


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 76
    Par défaut Probleme de cast pour un newbie en PObjet.
    Bonjour,


    J'ai un gridview connecté à un objectdatasource qui récupère des données et qui les affiche (dont la date d'embauche d'un salarié)
    Je veux calculer le nb de jour que le salarié a passé dans le boite.


    Rien de bien complexe à première vue, sauf que je galère avec les types de données.


    J'ai dans mon HTML ça :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       1. <ItemTemplate>  <%# DisplayDaysOnJob(Eval("date_embauche" ))%>


    Et ça c'est ma fonction en code-behind



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
       1. protected string DisplayDaysOnJob(DateTime Date)
       2.         {
       3.            
       4.             TimeSpan ts = DateTime.Now.Subtract(Date);
       5.             return ts.Days.ToString("#,##0" );                     
       6.         }

    Le champ date_embauche est un champ de type DateTime ( c'est ça qui a compliqué l'affaire j'ai l'impression)


    Et comme erreur c'est :
    La méthode surchargée correspondant le mieux à '....DisplayDaysOnJob(System.DateTime)' possède des arguments non valides

  2. #2
    Membre expérimenté
    Inscrit en
    Août 2007
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 139
    Par défaut
    Bonjour,

    As tu pensé à regarder du côté du type de données dans ta base ou à vérifier que tu compares bien le même format de date (longDate ou shortdate) ?

    A bientôt,

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 76
    Par défaut
    Dans la bd sql server, le champ est de type DateTime...

  4. #4
    Membre expérimenté
    Inscrit en
    Août 2007
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 139
    Par défaut
    Essaie ts.Days.ToString()

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Essaie avec un cast :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <ItemTemplate>  <%# DisplayDaysOnJob(CType(Eval("date_embauche" ), DateTime))%>

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 76
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Essaie avec un cast :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <ItemTemplate>  <%# DisplayDaysOnJob(CType(Eval("date_embauche" ), DateTime))%>
    Ca me met ça :
    CS0103: Le nom 'CType' n'existe pas dans le contexte actuel

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 76
    Par défaut
    Citation Envoyé par Laurent CUENET Voir le message
    Essaie ts.Days.ToString()
    C'est ce que j'ai mis.....

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par slimannnnn Voir le message
    Ca me met ça :
    CS0103: Le nom 'CType' n'existe pas dans le contexte actuel
    Ah ok, tu es en C#... tu as posté dans le forum VB.NET
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <ItemTemplate>  <%# DisplayDaysOnJob((DateTime)Eval("date_embauche" ))%>

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 76
    Par défaut
    Bon j'ai changé de façon ( vu sur un autre tuto).

    Avec l'autre la syntaxe a fonctionné, mais je dois avoir un problème d'objet NULL. (pourtant toutes mes dates sont renseigné).

    J'ai fais de cette facon

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%# DisplayDaysOnJob((DateTime)((System.Data.DataRowView)Container.DataItem).Row)%>
    Et ce qu'il me met comme erreur :

    Impossible de convertir le type 'System.Data.DataRow' en 'System.DateTime'
    Je sais pas comment le rebasculer sur le forum C# en éditant ya rien...(faut passer par un couper-coller ?

  10. #10
    Membre confirmé
    Homme Profil pro
    Développeur / DBA
    Inscrit en
    Septembre 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur / DBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 133
    Par défaut
    Moi je dit personnellement je ne m'embetterai pas a gérer ça dans le code mais je tablerai plutôt pour une belle requête SQL...

  11. #11
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par slimannnnn Voir le message
    Bon j'ai changé de façon ( vu sur un autre tuto).

    Avec l'autre la syntaxe a fonctionné, mais je dois avoir un problème d'objet NULL. (pourtant toutes mes dates sont renseigné).

    J'ai fais de cette facon

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%# DisplayDaysOnJob((DateTime)((System.Data.DataRowView)Container.DataItem).Row)%>
    Et ce qu'il me met comme erreur :



    Je sais pas comment le rebasculer sur le forum C# en éditant ya rien...(faut passer par un couper-coller ?
    Ca revient à peut près au même qu'en utilisant Eval, sauf que là il te manque un truc... tu ne dis pas à quelle colonne tu fais référence, et un DataRow n'est effectivement pas convertible en DateTime ! Essaie comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%# DisplayDaysOnJob((DateTime)((System.Data.DataRowView)Container.DataItem).Row["date_embauche"])%>
    Pour déplacer le message dans un autre forum, seul un modérateur peut le faire...

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 76
    Par défaut
    Bon ben toujours rien...

    Cette fois il me sort l'erreur au niveau de visual studio.

    Impossible d'effectuer un cast d'un objet de type 'PZP.BLL.BE.beOperateur' en type 'System.Data.DataRowView'.
    PZP = nom du projet
    BeOperateur = classe "Business entity" décrivant un opérateur (nom, prenom, date_embauche...)

    Merci

  13. #13
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    oula... alors là je suis perdu

  14. #14
    Membre confirmé
    Homme Profil pro
    Développeur / DBA
    Inscrit en
    Septembre 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur / DBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 133
    Par défaut
    Trois lettres pour répondre : "S" "Q" "L" on peut faire pas mal de petites choses avec ça ^^ Bon après moi je ne dit plus rien

  15. #15
    Membre expérimenté
    Inscrit en
    Août 2007
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 139
    Par défaut
    Citation Envoyé par slimannnnn Voir le message
    Bonjour,


    J'ai un gridview connecté à un objectdatasource qui récupère des données et qui les affiche (dont la date d'embauche d'un salarié)
    Je veux calculer le nb de jour que le salarié a passé dans le boite.


    Rien de bien complexe à première vue, sauf que je galère avec les types de données.


    J'ai dans mon HTML ça :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       1. <ItemTemplate>  <%# DisplayDaysOnJob(Eval("date_embauche" ))%>


    Et ça c'est ma fonction en code-behind



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
       1. protected string DisplayDaysOnJob(DateTime Date)
       2.         {
       3.            
       4.             TimeSpan ts = DateTime.Now.Subtract(Date);
       5.             return ts.Days.ToString("#,##0" );                    
       6.         }

    Le champ date_embauche est un champ de type DateTime ( c'est ça qui a compliqué l'affaire j'ai l'impression)


    Et comme erreur c'est :
    Bonjour,

    Excuse moi mais tu as écrit ts.Days.ToString("#,##0" ) et non ts.Days.ToString()
    charge now dans dt1
    ta date dans dt2
    dt1.Subtract(dt2).Days Si tu veux tu peux utiliser totaldays pour obtenir la virgule.

    En espérant t'aider

    A bientôt

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 76
    Par défaut
    Citation Envoyé par tomlev Voir le message
    oula... alors là je suis perdu
    Moi aussi....


    Trois lettres pour répondre : "S" "Q" "L" on peut faire pas mal de petites choses avec ça ^^ Bon après moi je ne dit plus rien
    Ben en fait je fait un tuto, donc c'est surtout pour apprendre et vu qu'il y a des bugs, ben je me fait la main aussi mais celui-ci j'abandonne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    dt1.Subtract(dt2).Days Si tu veux tu peux utiliser totaldays pour obtenir la virgule.
     
    En espérant t'aider
     
    A bientôt
    A priori, le corps de la fonction ne pose pas de problème pour l'instant, c'est plus au niveau des transferts de données (objets, datetime, string...) qui fait merder le tout.

    Merci à tous pour votre temps passé

Discussions similaires

  1. probleme de cast pour afficher une image
    Par scoobiflo dans le forum Graphisme
    Réponses: 9
    Dernier message: 30/11/2008, 22h52
  2. probleme de cast
    Par gaut dans le forum C++
    Réponses: 9
    Dernier message: 06/08/2004, 18h43
  3. conseil pour un newbie...
    Par QHorse dans le forum Décisions SGBD
    Réponses: 9
    Dernier message: 23/06/2004, 16h55
  4. Réponses: 2
    Dernier message: 01/06/2004, 16h12
  5. Le T2 pour les Newbies
    Par thanathz dans le forum Développement
    Réponses: 10
    Dernier message: 28/08/2003, 09h43

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