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

VB.NET Discussion :

Problème conversion en DateTime


Sujet :

VB.NET

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 84
    Points : 31
    Points
    31
    Par défaut Problème conversion en DateTime
    Bonjour,

    J'ai un petit soucis, j'ai un champs dans ma BDD en format DateTime, sous la forme DD/MM/YYYY HH24:MI:SS
    Je dois insérer depuis mon application des données à ce champs. Pour cela j'ai fais 2 DateTimesPicker, un qui affiche la date, l'autre l'heure. Cependant quand je tente d'executer me requete, il me répond que le moi n'existe pas. Je pense que cela est du à une erreur d'écriture de ma requete mais du coup je ne sais pas comment la résoudre

    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
    36
    37
    38
    39
    40
    41
     
    Private Sub cmdValider_Click(sender As System.Object, e As System.EventArgs) Handles cmdValider.Click
            Dim strConnex As String
            Dim Rqt As String
            strConnex = GetConnexionString()
            Try
                Me.objConnexion = New OracleConnection(strConnex)
                Me.objConnexion.Open()
                ' Requête paramétrée    
     
                Rqt = "INSERT INTO EVENEMENT (LIBELLE, TO_CHAR(DTE_EVENT, 'DD/MM/YYYY'), TO_CHAR(DTE_EVENT, 'HH24:MI:SS'), ID_EVENT, ID_DECISION, ID_TYPE_EVENT) VALUES (:LibEvent, :Date, :Heure, :NbEvent, :NbDeci, 1)"
     
                            ' On crée une commande Oracle    
                Using cmd = New OracleCommand()
                    cmd.Connection = Me.objConnexion
                    cmd.CommandText = Rqt
                    cmd.CommandType = CommandType.Text
     
                    ' On définit les valeurs des paramètres de la requête
                    cmd.Parameters.Add(":LibEvent", OracleDbType.Varchar2).Value = txtNatureEvenement.Text()
                    cmd.Parameters.Add(":Date", OracleDbType.Date).Value = DateTimePicker1.Text()
                    cmd.Parameters.Add(":Heure", OracleDbType.Date).Value = DateTimePicker2.Text()
                    cmd.Parameters.Add(":NbEvent", OracleDbType.Int32).Value = NbEvent
                    cmd.Parameters.Add(":NbDeci", OracleDbType.Int32).Value = NbDeci
     
                    ' On exécute la requête    
                    Using dr As New OracleDataAdapter
                        cmd.ExecuteNonQuery()
     
                        MessageBox.Show("L'évènement à été ajouté avec succès!")
                        Connection.Show()
                        Me.Hide()
                    End Using
                End Using
     
            Catch ex As Exception
                ' --Message d'erreur en cas de problême de connexion à la BDD--
                MessageBox.Show("ERREUR sur objet de connexion : " & ex.ToString)
            End Try
     
        End Sub

  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 : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Peut-être qu'en castant avant ça t'évitera des soucis. Par exemple :
    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dim dateValue As Date
    If (DateTime.TryParse(DateTimePicker1.Text, dateValue)) Then
        cmd.Parameters.Add(":Date", OracleDbType.Date).Value = dateValue
    Else
        ' Gère ici le cas où la conversion échoue
    End If
     
    Dim timeValue As DateTime
    If (DateTime.TryParse(DateTimePicker2.Text, timeValue)) Then
        cmd.Parameters.Add(":Heure", OracleDbType.Date).Value = timeValue
    Else
        ' Gère ici le cas où la conversion échoue
    End If
    J'ai pas testé donc à vérifier
    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 chevronné Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Points : 1 961
    Points
    1 961
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                   cmd.Parameters.Add(":Date", OracleDbType.Date).Value = DateTimePicker1.Text()
                    cmd.Parameters.Add(":Heure", OracleDbType.Date).Value = DateTimePicker2.Text()

    Info : Aujourd'hui nous sommes le 31/05/2013, je choisis cette date dans le DTP, DateTimePicker.text va me retourner "vendredi 31 mai 2013" alors que DateTimePicker.Value va me retourner "31/05/2013 10:09:58" ...

    (A noter que DateTimePicker.Value retourne un type Date, donc tu as toutes les properties et fonctions associées afin de t'aider à formater ta date : DateTimePicker1.Value.Date retournera "31/05/2013" uniquement, etc etc)
    Aider les autres, c'est encore la meilleure façon de s'aider soi-même. Martin Gray

    ToDo : Faire une ToDo List

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 84
    Points : 31
    Points
    31
    Par défaut
    Ok, merci bien ,je vais essayer

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    Citation Envoyé par Crowww Voir le message
    j'ai un champs dans ma BDD en format DateTime, sous la forme DD/MM/YYYY HH24:MI:SS
    un datetime n'a pas de forme string, c'est un format sur 8 octets définissant la date dans un format standard

    depuis une requete il faut donc bien utiliser les parameters mais avec des valeurs de types date, pour que ca transite en date entre le programme et l'appli, avec aucune possibilité de bug
    donc ne pas utiliser datetimepicker.text qui est un string, mais la propriété de type date

    la représentation sous forme de string est définie par l'os, le moteur de base de données, ou peut etre forcée dans le programme, mais ce n'est qu'une représentation de la date
    depuis ta base de données quand tu regardes les données dans les tables, c'est une transformation en string qui est faite aussi
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

Discussions similaires

  1. problème conversion DateTime
    Par Oussema86 dans le forum Framework .NET
    Réponses: 1
    Dernier message: 09/11/2012, 16h41
  2. Problème de conversion en DateTime
    Par Mister Nowis dans le forum C#
    Réponses: 2
    Dernier message: 07/10/2010, 12h02
  3. Problème avec la conversion du DateTime
    Par Dr.SoFtNaF dans le forum Développement
    Réponses: 7
    Dernier message: 15/09/2010, 11h24
  4. Probléme de conversion en datetime
    Par locs dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 27/02/2007, 00h24
  5. Problème conversion date
    Par mat.M dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 30/03/2004, 15h05

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