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 conversion datetime


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Homme Profil pro
    Apprenti en dévelloppement
    Inscrit en
    Août 2010
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti en dévelloppement

    Informations forums :
    Inscription : Août 2010
    Messages : 81
    Par défaut probleme conversion datetime
    Bonjour,

    Je suis bloqué à cause d'une conversion que la base ne prend pas en compte. En effet, j'utilise un DataReader :

    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
     
     
    Dim sql_search As String = "SELECT dateheuretogo, dateheuretoend"
            Dim cmdsearch As SqlCommand = New SqlCommand(sql_search, cnn)
     
            cnn.Open()
     
            Dim cmdRead As SqlDataReader = cmdsearch.ExecuteReader
     
            cmdRead.Read()
     
            Dim dateheuredepart as datetime= cmdRead("dateheuretogo")
            Dim dateheureretour as datetime = cmdRead("dateheuretoend")
     
     
            If cmdRead.HasRows Then
                While cmdRead.Read
                    If 1=2 Then
                        ...
                        ...
                    End If
                End While
            End If
     
            cmdRead.Close()
            cnn.Close()
     
            cnn.Open()
            'écriture dans la base
            Dim sqlwritetodatabase As String = "INSERT INTO tbl_heure(dateheuretogo, dateheuretoend" & _
                                "VALUES('" & dateheuretogo & "','" & dateheuretoend & "')"
     
            Dim cmdwritetodatabase As SqlCommand = New SqlCommand(sqlwritetodatabase, cnn)
     
     cmdwritetodatabase.ExecuteNonQuery()
    Voilà le code, le problème ce situe au moment de l'écriture dans la base, j'ai le message d'erreur suivant :

    The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value. The statement has been terminated.
    Que doit-je faire? Mercii d'avance.

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Bonjour,

    Deux choses :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim sql_search As String = "SELECT , dateheuretogo, dateheuretoend"

    Il y a une virgule en trop dans ta requête SELECT.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim sqlwritetodatabase AsString = "INSERT INTO tbl_heure(dateheuretogo, dateheuretoend" & _
                                "VALUES('" & dateheuretogo & "','" & dateheuretoend & "')"

    Cette requête comporte 2 anomalies. La première, c'est que tu insères directement tes dates au format date, alors que ta requête est un string. Il faut que tu utilises la méthode ToString() pour convertir tes dates en String. Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim sql_search As String = "SELECT , dateheuretogo, dateheuretoend"

    Il y a une virgule en trop dans ta requête SELECT.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim sqlwritetodatabase AsString = "INSERT INTO tbl_heure(dateheuretogo, dateheuretoend" & _
    "VALUES('" & dateheuretogo.ToString() & "','" & dateheuretoend.ToString() & "')"


    La deuxième chose qui ne va pas, c'est que tu insères directement des variables dans une requête SQL, ce qui peut poser des problèmes de sécurité, notamment par rapport aux injections SQL.
    Afin de fiabiliser et de sécuriser ton site, je te recommande d'utiliser les paramètres SQL. Tu trouveras quelques information à leur propos ici :

    http://asp-net-example.blogspot.com/...ow-to-use.html

    http://msdn.microsoft.com/en-us/library/ff648339.aspx
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Membre confirmé
    Homme Profil pro
    Apprenti en dévelloppement
    Inscrit en
    Août 2010
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti en dévelloppement

    Informations forums :
    Inscription : Août 2010
    Messages : 81
    Par défaut tr
    Bonjour, tout d'abord merci d'avoir répondu si vite.

    J'ai vérifié est essayé en suivant tes démarches : enlevé la virgule, utilisé le string au bon moment..

    Mais rien ne marche. Enfaite quand je regarde dans la base le format du champ et datetime et il est égal par exemple à 2011-04-06 14:30:00.000 alors que celui en vb datetime = 01/14/2011 07:00:00.000 AM

    Je pense que le problème vient de là, base SqlServer en anglais donc datetime en anglais et donc yyyy,mm,dd
    Peut-tu m'éclaicir?

  4. #4
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Ne pas manipuler les dates en chaine de caractères (sauf pour la saisie et l'affichage) et utiliser les requêtes paramètrées.

  5. #5
    Rédacteur

    Avatar de Jean-Michel Ormes
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    1 838
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 838
    Par défaut
    Citation Envoyé par luchoo Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    Dim sql_search As String = "SELECT dateheuretogo, dateheuretoend"
    C'est moi ou ton SELECT est incomplet ? Manquerais pas un " FROM taTable" ?

    Citation Envoyé par Bluedeep Voir le message
    Ne pas manipuler les dates en chaine de caractères (sauf pour la saisie et l'affichage) et utiliser les requêtes paramètrées.
    +1. On ne le dira jamais assez.

  6. #6
    Membre confirmé
    Homme Profil pro
    Apprenti en dévelloppement
    Inscrit en
    Août 2010
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti en dévelloppement

    Informations forums :
    Inscription : Août 2010
    Messages : 81
    Par défaut tr
    ok merci!

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

Discussions similaires

  1. probleme conversion decimal to binaire
    Par aimad41 dans le forum C
    Réponses: 3
    Dernier message: 14/12/2006, 09h45
  2. DTS importation de données texte - probleme format datetime
    Par kungouf dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 25/10/2006, 17h00
  3. [Conception] Probleme conversion texte & BD
    Par Seth77 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 16/06/2006, 16h22
  4. conversion datetime-chaine de caracteres
    Par HULK dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 27/08/2005, 13h26

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