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 :

Réglage culture d'un DbConnection


Sujet :

C#

  1. #1
    Membre émérite Avatar de ppphil
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    614
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 614
    Par défaut Réglage culture d'un DbConnection
    Bonjour,
    Je suis confronté à un problème vraiment débile.
    Chez un client, je dois faire tourner une application qui se connecte à une db mssql.
    Or, le pc qui héberge le serveur mssql a des paramètre régionaux qui retourne les dates sous forme dd/mm/yyyy.
    Le serveur de base de données à été configuré de telle manière que, je ne sais pas pourquoi, mais sa culture est différente et formate les date en mm/dd/yyyy.

    Quand j'utilise une requête paramétrée, le format de de date est donc faux pour le sgbdr.

    Est-il possible de définir une culture particulière pour une connexion ?
    Parce que le seul moyen de m'en sortir est de formater les dates à la main suivant la culture utilisée....

    Bonne journée

  2. #2
    Membre émérite
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2007
    Messages
    693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 693
    Par défaut
    Bonjour,

    Je reprends un post de SQLPro :
    Cette question n' aucun sens... Une date est un type date ! Il n'y a pas de format dans les types de données.

    Si vous voulez convertir votre date en chaine de caractères ceci est du ressort de votre outil client.

    Lisez ce que j'ai écrit à ce sujet : (Les erreurs SQL les plus fréquentes) :
    http://sqlpro.developpez.com/cours/sqlaz/erreurs/#L7
    Après si lors de l'appel, tu utilises une chaîne de caractère le problème sera là.

  3. #3
    Membre émérite Avatar de ppphil
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    614
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 614
    Par défaut
    C'est tout à fait juste.
    Seulement, ce que je ne comprends pas c'est pourquoi, lorsque je passe une date dans une requête paramétrée, ma requête ne fonctionne pas et quand je passe ma date dans une requête sous forme string ça passe....
    Bon je dois avoir un blème ailleurs...
    Merci

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 193
    Par défaut
    fait voir le code, parce que les DbParameters de type date (il faut spécifier le type) sont des dates et donc n'ont pas de format hormis la norme iso en vigueur, donc il ne peut pas y avoir d'inversion si tu ne transites pas par un string
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre émérite Avatar de ppphil
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    614
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 614
    Par défaut
    Non, non, je passe bien par une req paramétrée.
    Peut-il y avoir un mode de stockage différent des dates entre un vieux server mssql et un plus récent ?
    Je sais pas, p.ex. du double sur 32 bits pour l'ancien et du double sur 64 bits pour le nouveau ?
    Sinon, j'ai du faire une crevée ailleurs...

  6. #6
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 193
    Par défaut
    une date ce n'est pas un double
    le datetime est sur 8 octets et le shortdatetime sur 4
    spécifies tu le type de ton parameter ?

    je ne connais pas sql server 7, mais depuis 2000 il n'y a pas de soucis

    sinon le format de culture se défini dans studio management (ou entreprise manager) dans les utilisateurs de base de données
    m'enfin cette définition à part afficher les dates en string dans le bon sens dans studio management, elle ne sert pas à grand chose je pense
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  7. #7
    Membre émérite
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2007
    Messages
    693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 693
    Par défaut
    On peut voir le code en question ?

  8. #8
    Membre émérite Avatar de ppphil
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    614
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 614
    Par défaut
    ben le code ça ressemble à qqchose comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Parameter = Command.CreateParameter();
    Parameter.ParameterName = "@date";
    Parameter.DbType = DbType.DateTime;
    Parameter.Value = myDate; //De type DateTime bien sûr
    Command.Parameters.Add(Parameter);

  9. #9
    Membre Expert Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Par défaut
    Hello,

    tu obtiens une exception lorsque tu passes un DateTime en paramètre ? Laquelle ? ou alors tu ne reçois pas d'exception, mais les données en bases sont mauvaises ?

  10. #10
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 193
    Par défaut
    il n'a pas d'exception apparement, c'est que les jours et mois sont inversés

    d'ailleurs à quoi vois que les jours et mois sont inversés ?
    parce que ca se peut que ta bases t'affiches les dates inversées, mais ca serait juste à l'affichage car si tu fais une requete pour récupérer la date as date techniquement ca ne peux pas être inversé
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  11. #11
    Membre émérite Avatar de ppphil
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    614
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 614
    Par défaut
    Ok, merci les gars, faut que je vérifie encore deux-trois trucs...
    Si je mets ma date sous forme de string dans le bon format, j'obtiens des résultats et si je passe par une req param je n'en ai plus...
    Je vais fouiller encore un peu. Le blème c'est que le server est chez un client et je n'y ai pas accès pour l'instant...
    Merci et bonne journée !!

Discussions similaires

  1. [Culture] Définitions
    Par Superstivix dans le forum La taverne du Club : Humour et divers
    Réponses: 15
    Dernier message: 07/09/2018, 13h43
  2. [Culture] Maximes
    Par Superstivix dans le forum La taverne du Club : Humour et divers
    Réponses: 50
    Dernier message: 21/09/2016, 12h30
  3. [sqlplus] sauvegarder/restaurer réglages
    Par Benav dans le forum Oracle
    Réponses: 5
    Dernier message: 22/02/2005, 13h35
  4. Word : réglage automatique hauteur de cellules
    Par 120 dans le forum VBA Word
    Réponses: 2
    Dernier message: 16/02/2005, 09h26
  5. Comment détecter un changement du réglage de voume sonore ?
    Par mjlub dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 09/01/2004, 17h43

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