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

C# Discussion :

convertion dateTime american en dateTimeFrench


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Juillet 2008
    Messages : 97
    Par défaut convertion dateTime american en dateTimeFrench
    Bonjour a tous,

    Je developpe un webservice avec un appel a une procedure stockee vers ma base de donnees MS SQL Server 2005. Cette procedure stockee permet d'executer un update.
    Par defaut sous MS SQL Server, les elements Datetime sont sous format American MDY.
    Donc, je fais un "SET DATEFORMAT dmy" pour le mettre au format french.

    Si, j'execute ma procedure stockee sous MS SQL Server avec des dates french, il les prend sous le bon format.
    Mais, le probleme, c'est que je veux exercuter, ma procedure stockee en C#
    comme ce qui suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     SqlCommand maCommande = maConnection.CreateCommand();
               maCommande.CommandType = CommandType.StoredProcedure;
               maCommande.CommandText = "UPDATE_Description";
     
                   SqlParameter param = maCommande.CreateParameter();
                    param.ParameterName = "@ALineActual"; --variable local de la procedure stockee
                    param.DbType = DbType.DateTime;
                    param.Value = ALineActual; --variable de mon entete de function
                    maCommande.Parameters.Add(param);
    Mais qund, j'exceute mon webservice avec une date de 10/07/2008 car fonctionne, mais si je mets 18/07/2008, et bien ca echoue.

    Je connais mon probleme, il s'agit du format de la date, mais je ne sais pas ou le changer ?

    Auriez vous une idee, svp ?

  2. #2
    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
    Normalement, en utilisant des paramètres, tu n'as pas à te préoccuper du format...
    Quel est le type de la variable ALineActual ? c'est bien un DateTime ?

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Juillet 2008
    Messages : 97
    Par défaut
    ui bien sur ds MS SQL server, c un DateTime et ds mon code aussi "DateTime ALineActual"

    par defaut sur mon webservice, les dates sont au format americain mais mois, je le veux que mes dates a submiter soient submitees en french ?

    Tu comprends ce que je souhaiterai faire ?

  4. #4
    Expert confirmé

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Par défaut
    question a 12 centimes, tu récupères comment ta date dans AlineActual ?

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  5. #5
    Membre confirmé
    Inscrit en
    Juillet 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Juillet 2008
    Messages : 97
    Par défaut
    J'appelle ma function avec en parametre (DateTime ALineActual). Je renseigne le champs a l'execution de mon webservice.

    Puis, le code s'execute : La donnee alors saisie dans "ALineActual" est alors mis dans le champs "@ALineActual" pour l'envoyer au server SQL

    Le code qui fait ca est le meme que precedemment

    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
     
     public void UPDATE_Description_customer(DateTime ALineActual)
        {
            //
            char[] TabChar = new char[] { '*' };
            string[] TabLibelle = Area.Split(TabChar);
            foreach (string str in TabLibelle)
            {
                if (!(str == ""))
                {
                    SqlConnection maConnection = new SqlConnection(StringConnection);
                    maConnection.Open();
     
                    SqlCommand maCommande = maConnection.CreateCommand();
                    maCommande.CommandType = CommandType.StoredProcedure;
                    maCommande.CommandText = "UPDATE_Description";
     
                  SqlParameter param = maCommande.CreateParameter();
                    param.ParameterName = "@ALineActual"; --variable local de la procedure stockee
                    param.DbType = DbType.DateTime;
                    param.Value = ALineActual; --variable de mon entete de function
                    maCommande.Parameters.Add(param);
     
                    SqlDataReader monCurseur = maCommande.ExecuteReader();
     
                    maConnection.Close();
                }
            }
        }
    Voila, je saisis comme suit ma date a l'execution de mon webservice :

  6. #6
    Expert confirmé

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Par défaut
    je reformule, comment, "physiquement" tu envoies ta date a ton service web ???

    est-ce que tu entres ta date en manuel depuis la page asmx hébergée sur IIS ?

    est-ce que tu as un autre projet qui fait reference au service web ???

    ce qu'on essaye de te dire tous les deux, c'est qu'un objet DateTime se tape le coquillard du format de date de ton pc...

    Par contre, a un moment, tu dois générer un objet DateTime a partir d 'autre chose...code, entrée manuelle, ou autre... charge a toi de gerer le format dans lequel tu attends l'entree utilisateur

    Si ton point d'entrée utilisateur attends une date US, tu devras lui donner une date au format US.


    Est-ce que je suis clair, ou est-il déjà trop tard (fatigue, le philippe )

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  7. #7
    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 padawanette Voir le message
    Tu comprends ce que je souhaiterai faire ?
    non, justement... quand tu utilises des paramètres, les dates ne sont transmises ni en français, ni en américain, ni en autre chose. Elles sont transmises dans un format brut indépendant de la culture. Donc quel que soit le DATEFORMAT de SQL Server, ça ne devrait rien changer

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

Discussions similaires

  1. Convert Datetime en Date dans BO
    Par MOMO_LAM dans le forum Deski
    Réponses: 12
    Dernier message: 29/11/2007, 14h58
  2. Convert : DateTime - varchar
    Par diaboloche dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 12/09/2007, 10h23
  3. Problème avec convert datetime
    Par sane79 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 02/07/2007, 10h43
  4. PB : Overflow converting datetime
    Par borisa dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 18/06/2007, 14h49
  5. Probleme avec la fonction replace et convert datetime
    Par gazzall dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 27/04/2007, 09h07

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