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

Accès aux données Discussion :

BUG: champ date refusé par SQL Server


Sujet :

Accès aux données

  1. #1
    Membre extrêmement actif Avatar de cortex024
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 301
    Points : 1 119
    Points
    1 119
    Par défaut BUG: champ date refusé par SQL Server
    Bonjour, je fais un simple insert dans ma table...
    Il y a un champ date, mais lorsque j'exécute la requête il me dit "Incorrect syntax near HH", HH etant le nombre correspondant à l'heure.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    macommande.CommandText = String.Format("INSERT INTO matable (CNom , CPrenom, AvailabilityID,CDate) values ('" + nom + "','" + prenom + "',1,"+DateTime.Now+")");
    Même lorsque je place une date moi même dans ma requête, même effet.
    Même erreur aussi lorsque j'exécute directement cette requête dans SQL Serveur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    INSERT INTO matable
                          (CNom, CPrenom, AvailabilityID, CDate)
    VALUES     ('nom', 'prenom', 1, 22 / 12 / 2005 16 : 12 : 23)
    Pourtant, lorsque j'ajoute manuellement les données dans chaque colonne de la table, il accepte, la date aussi (normal vu qu'elle est au bon format).

    Mais pourquoi alors me refuser ce champ date dans une requête

    Merci de vos réponses

  2. #2
    Membre éprouvé Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Points : 1 256
    Points
    1 256
    Par défaut
    essai plutot :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    macommande.CommandText = String.Format("INSERT INTO matable (CNom , CPrenom, AvailabilityID,CDate) values ('" + nom + "','" + prenom + "',1,'"+DateTime.Now+"')");
    ou encore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    macommande.CommandText = String.Format("INSERT INTO matable (CNom , CPrenom, AvailabilityID,CDate) values ('" + nom + "','" + prenom + "',1,#"+DateTime.Now+"#");

  3. #3
    Membre extrêmement actif Avatar de cortex024
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 301
    Points : 1 119
    Points
    1 119
    Par défaut
    aucune de tes 2 possibilités ne fonctionne...

    Que ce soit en code dans l'applic ou directement en executant une requête dans SQL.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2004
    Messages : 52
    Points : 60
    Points
    60
    Par défaut
    Et ca?

    macommande.CommandText = String.Format("INSERT INTO matable (CNom , CPrenom, AvailabilityID,CDate) values ('" + nom + "','" + prenom + "',1, getdate()");

  5. #5
    Membre extrêmement actif Avatar de cortex024
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 301
    Points : 1 119
    Points
    1 119
    Par défaut
    ok ca marche...

    donc ici en prenant la date de sql server, plutôt que la date récupérée à partir de l'application...

    Merci, mon problème est réglé MAIS il reste néanmoins un problème.

    si je veux ajouter une valeur autre que la date:heure courante pouvant être récupérée dans SQl Serveur, le problème reste!

    Comment faire pour ajouter une date dans un champ DateTime?

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 68
    Points : 80
    Points
    80
    Par défaut
    Je pense qu'avant de faire ton DateTime.Now tu dois changer la culture du thread courant pour qu'il soit comme celui de SQL Server. Ainsi, tu travailles avec des dates en français, passe en culture américaine juste avant le DateTime.Now (pour y revenir après).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    CultureInfo EnglishCulture = new CultureInfo("en-US");
    CultureInfo FrenchCulture = new CultureInfo("fr-FR");
     
    Thread.CurrentThread.CurrentCulture = Thread.CurrentThread.CurrentUICulture = EnglishCulture;
     
    //Ton Code
     
    Thread.CurrentThread.CurrentCulture = Thread.CurrentThread.CurrentUICulture = FrenchCulture;
    Voilà.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2004
    Messages : 52
    Points : 60
    Points
    60
    Par défaut
    Ou alors utilise des parametres

    mycmd.CommandText = "INSERT INTO matable (CNom , CPrenom, AvailabilityID,CDate) values (@nom,@prenom,1,@date)");
    mycmd..Parameters.Add("@nom", nom)
    mycmd..Parameters.Add("@prenom", prenom)
    mycmd..Parameters.Add("@date", date)

  8. #8
    Membre régulier Avatar de DonkeyMaster
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2005
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 95
    Points : 110
    Points
    110
    Par défaut
    Essaie de mettre ta date dans des guillemets simples

  9. #9
    Membre extrêmement actif Avatar de cortex024
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 301
    Points : 1 119
    Points
    1 119
    Par défaut
    Citation Envoyé par DonkeyMaster
    Essaie de mettre ta date dans des guillemets simples
    ok merci ca fonctionne...

    mais ce qui est bizarre c'est que avec le datetime.now entre guillement cela ne passait pas...

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

Discussions similaires

  1. traduire un prog écrits par SQL server au lg MySQL
    Par jack_1981 dans le forum Outils
    Réponses: 6
    Dernier message: 21/02/2006, 07h29
  2. Réponses: 3
    Dernier message: 23/01/2006, 12h02
  3. Démarrage d'une macro par SQL Server
    Par PiercingDegree dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 28/09/2005, 09h13
  4. fonction utilisateur non reconue par sql server 2000
    Par ouedmouss dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 05/09/2005, 07h46
  5. Table ASCII utilisée par SQL Server
    Par Oluha dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 29/06/2005, 14h31

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