Un petit problème avec datetimepiker

dibax10 Messages postés 65 Date d'inscription dimanche 25 avril 2010 Statut Membre Dernière intervention 28 mars 2013 - 10 nov. 2010 à 14:42
 cs_TIKATKT - 11 nov. 2010 à 11:59
salut tout le monde
j ai crèer ma base de donnée medecin ou il a une table patient qui contient les champs suivant (mle,nom,prenom,date_naiss ,poids,taille)
j ai un form pour ajouter j ajoute un patient
mon problème c est que quand je veux modifier un patient j arrive pas a afficher la date que j ai ajouter pour ce patient dans ma base de donnée il change voila mon code pour ajouter:
imports System.Data
Imports System.Data.SqlClient

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        co.Open()

        Dim cmd As New SqlCommand("insert into passion values(" & mle.Text & ",'" & nom.Text & "','" & prenom.Text & "','" & DateTimePicker1.Value & "'," & poid.Text & "," & taille.Text & ")", co)
        cmd.ExecuteNonQuery()
        MsgBox("ajoue reussi ")
        co.Close()
    End Sub
end class 

et mon code pour modifier (j utilise un combo pour afficher le patient que je veu modifier ) :
Imports System.Data
Imports System.Data.SqlClient
Public Class Form2

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        co.Open()
        Dim cmd As New SqlCommand("update passion set nom ='" & nom.Text & "',prenom='" & prenom.Text & "',date_naiss'" & DateTimePicker1.Value & "',poid =" & poid.Text & ",taille=" & taille.Text & " where mle= " & mle.SelectedValue, co)
        cmd.ExecuteNonQuery()
        MsgBox("modification reussite ")
        co.Close()

    End Sub

    Private Sub mle_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mle.SelectedIndexChanged
        co.Open()
        Dim cmd As New SqlCommand("select * from passion where mle =" & mle.Text, co)
        Dim re As SqlDataReader

        re = cmd.ExecuteReader
        While re.Read
            nom.Text = re(1)
            prenom.Text = re(2)
            DateTimePicker1.Value = re(3)
            poid.Text = re(4)
            taille.Text = re(5)

        End While
        re.Close()
        co.Close()


    End Sub

    Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        co.Open()
        Dim cmd As New SqlCommand("select mle from passion ", co)
        Dim re As SqlDataReader

        re = cmd.ExecuteReader()
        While re.Read

            mle.Items.Add(re(0))

        End While
        re.Close()
        co.Close()
    End Sub

donc voila j espère que quelqu'un un pourra m aider
merci d'avance et bonne journée

24 réponses

raffika Messages postés 269 Date d'inscription dimanche 31 mai 2009 Statut Membre Dernière intervention 12 mars 2011
10 nov. 2010 à 15:02
Salut,
il y a peut être un problème de format
de date... Et DateTimePicker1.Value renvoie
la date + l'heure, si tu veux juste la date,
il faut le préciser :
MsgBox(DateTimePicker1.Value.Date)
0
dibax10 Messages postés 65 Date d'inscription dimanche 25 avril 2010 Statut Membre Dernière intervention 28 mars 2013
10 nov. 2010 à 15:08
malheureusement sa marche pas
je veux importer de la base de donnée la date du patient que je choisi et quand j ecri datetimepiker1.value.date sa me dit que cette expression est une valeur et ne peut donc pas être la cible d une assignation
0
raffika Messages postés 269 Date d'inscription dimanche 31 mai 2009 Statut Membre Dernière intervention 12 mars 2011
10 nov. 2010 à 15:30
A quel endroit as tu ce message d'erreur ?
Si c'est à la ligne :
DateTimePicker1.Value = re(3)
Tu n'est pas obligé de mettre
DateTimePicker1.Value.Date = re(3)
comme le dit le message d'erreur :
DateTimePicker1.Value.Date renvoie la date sans
l'heure, qui était peut être à l'origine du bug...
Mais tu peux très bien assigner à DateTimePicker1.Value
une date qui comprends aussi l'heure.
0
dibax10 Messages postés 65 Date d'inscription dimanche 25 avril 2010 Statut Membre Dernière intervention 28 mars 2013
10 nov. 2010 à 15:58
en faite c est pas une erreur il le souligne et affiche le message que je t avais dit ton a une autre solution pour que j affiche la date que j ai rentrè en base de donnée ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
raffika Messages postés 269 Date d'inscription dimanche 31 mai 2009 Statut Membre Dernière intervention 12 mars 2011
10 nov. 2010 à 16:03
Je ne connais pas trop les bases de données.
Euh le champ date_naiss est dans quel format,
date, chaine de caractères... ?
Comme je t'ai dit il y a peut être une erreur
de format date, par exemple si ton champ date_naiss
est du format 2010/11/10 il y aura une erreur de format
car en VB le format est du type 10/11/2010...
0
dibax10 Messages postés 65 Date d'inscription dimanche 25 avril 2010 Statut Membre Dernière intervention 28 mars 2013
10 nov. 2010 à 16:11
j ai declarè date_naiss en type date sur ma base de donnèe et comment je peux changer la format de la date pour que vb l accepte ?
0
raffika Messages postés 269 Date d'inscription dimanche 31 mai 2009 Statut Membre Dernière intervention 12 mars 2011
10 nov. 2010 à 16:18
Je sais pas si on peux modifier le format
de date dans la base de données.
Mais on peux "modifier" le format de date dans VB.
Dans quel ordre dans ta base de donnée
apparaisse le jour mois et année ?
Par exemple tu peux remplacer
DateTimePicker1.Value.Date
par :
DateTimePicker1.Value.year & "-" & DateTimePicker1.Value.month & "-" & datetimePicker1.Value.Day
(sur la même ligne)
Donc cette ligne renvoie ,tu peux tester avec un MsgBox :

MsgBox(DateTimePicker1.Value.Year & "-" & DateTimePicker1.Value.Month & "-" & DateTimePicker1.Value.Day)

renvoie : 2010-11-10
0
dibax10 Messages postés 65 Date d'inscription dimanche 25 avril 2010 Statut Membre Dernière intervention 28 mars 2013
10 nov. 2010 à 16:38
dans ma base de donnée c est année / mois /jour c est comme sa que la date apparait
et pour ce que tu viens de me proposer sa marche pas car deja je veux affecter ce que j ai dans la case date_naiss dans datetimepiker
par exemple j affecte ce qu il a dans la case nom dans un textbox.text
et pour cela j ai utilisé sqldatareader pour apporter les information que j ai dans la case nom qui est r(1) dans ma base de donnée :
textbox.text=r(1)
et je veux faire pareil pour la date sauf que je veux l afficher dans un datetimepiker
maint je dois juste chercher a modifier la format de la date sur vb pour que sa devien année/mois/jour
0
raffika Messages postés 269 Date d'inscription dimanche 31 mai 2009 Statut Membre Dernière intervention 12 mars 2011
10 nov. 2010 à 16:54
Tu peux faire ça avec Substring :
donc si la date dans la base de donnée 2010-11-10 :

Dim date_de_la_bdd As String = "2010-11-10"

Dim annee As String = date_de_la_bdd.substring(0, 4)
Dim mois As String = date_de_la_bdd.substring(5, 2)
Dim jour As String = date_de_la_bdd.substring(8, 2)

Dim ladate As New Date(annee, mois, jour)
DateTimePicker1.Value = ladate

remplacer 2010-11-10 par la date récupérée de ta bdd
Salut
0
dibax10 Messages postés 65 Date d'inscription dimanche 25 avril 2010 Statut Membre Dernière intervention 28 mars 2013
10 nov. 2010 à 17:08
quand je veux modifier sa me donne un message d'erreur "incorrect syntaxe near :'10/11/2010'
meme quand j enlève le code que tu ma envoyé sa donne la même erreur
alors que quand j ajoute il a aucun problème
0
raffika Messages postés 269 Date d'inscription dimanche 31 mai 2009 Statut Membre Dernière intervention 12 mars 2011
10 nov. 2010 à 17:14
Je ne comprends pas,
quand tu ajoutes des informations dans la base de
données ça marche ?
incorrect syntaxe near :'10/11/2010' est le message
venant de la base de données ?
C'est peut être les / ? Car moi je t'ai donné
un exemple avec des - commes séparateurs.
Peut être que la base de données veux un format jour mois année
séparés par des /, alors essaye avec ceci :
DateTimePicker1.Value.Day & "/" & DateTimePicker1.Value.month & "/" & datetimePicker1.Value.Year
0
dibax10 Messages postés 65 Date d'inscription dimanche 25 avril 2010 Statut Membre Dernière intervention 28 mars 2013
10 nov. 2010 à 17:19
dans la base de donnèe il a des - et quand j ai cherchè sur vb il les separe avec des /
je ne sais pas pourquoi il ajoute la date dans la base de donnée mais elle veut pas la modifier
0
raffika Messages postés 269 Date d'inscription dimanche 31 mai 2009 Statut Membre Dernière intervention 12 mars 2011
10 nov. 2010 à 17:35
Ok, tu peux me donner le code et me dire à quel ligne
il y a une erreur ?
0
raffika Messages postés 269 Date d'inscription dimanche 31 mai 2009 Statut Membre Dernière intervention 12 mars 2011
10 nov. 2010 à 17:36
PS : Le reste ça marche maintenant ?
0
dibax10 Messages postés 65 Date d'inscription dimanche 25 avril 2010 Statut Membre Dernière intervention 28 mars 2013
10 nov. 2010 à 17:48
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim cmd As New SqlCommand("update passion set nom='" & nom.Text & "',prenom='" & prenom.Text & "',date_naiss='" & Me.DateTimePicker1.Value & "',poids=" & poid.Text & ",taille=" & taille.Text & "where mle=" & Me.mle.SelectedValue, co)
        co.Open()
        cmd.ExecuteNonQuery()

        MsgBox("modification reussite ")
        co.Close()

    End Sub

voila le code maint l erreur c est incorrect syntax near'='
et il parle du = après date_naiss car quand j enlève '=' il me donne l erreur de tt ta l heure incorrect syntax near '11/10/2010'
0
raffika Messages postés 269 Date d'inscription dimanche 31 mai 2009 Statut Membre Dernière intervention 12 mars 2011
10 nov. 2010 à 17:55
Essayes ceci, remplaces ta ligne :
Dim cmd As New SqlCommand("update passion set nom='" & nom.Text & "',prenom='" & prenom.Text & "',date_naiss='" & Me.DateTimePicker1.Value & "',poids=" & poid.Text & ",taille=" & taille.Text & "where mle=" & Me.mle.SelectedValue, co)
par ceci :
Dim dateformatee As String
dateformatee = DateTimePicker1.Value.Date.Year
dateformatee = dateformatee & "/"
dateformatee = dateformatee & DateTimePicker1.Value.Date.Month
dateformatee = dateformatee & "/"
dateformatee = dateformatee & DateTimePicker1.Value.Date.Day

Dim cmd As New SqlCommand("update passion set nom='" & nom.Text & "',prenom='" & prenom.Text & "',date_naiss='" & dateformatee & "',poids=" & poid.Text & ",taille=" & taille.Text & "where mle=" & Me.mle.SelectedValue, co)
Ca doit marcher si la bdd attend bien un format de type 2010/11/10
0
dibax10 Messages postés 65 Date d'inscription dimanche 25 avril 2010 Statut Membre Dernière intervention 28 mars 2013
10 nov. 2010 à 18:10
sa me donne toujours le meme message d erreur (incorrect syntax near '=' )
0
raffika Messages postés 269 Date d'inscription dimanche 31 mai 2009 Statut Membre Dernière intervention 12 mars 2011
10 nov. 2010 à 18:22
Tu n'as pas oublié des ' dans ton code :
dateformatee & "',poids=" & poid.Text & ",taille=" & taille.Text & "where mle="
par exemple ?
Là il manque pas les ' ?
Après poids par exemple, poidsil faut pas mettre des ' apres le ?
Regardes, ici j'ai rajouté des ' :
Dim cmd As New SqlCommand("update passion set nom='" & nom.Text & "',prenom='" & prenom.Text & "',date_naiss='" & dateformatee & "',poids='" & poid.Text & "',taille='" & taille.Text & "' where mle='" & Me.mle.SelectedValue & "'", co)
0
dibax10 Messages postés 65 Date d'inscription dimanche 25 avril 2010 Statut Membre Dernière intervention 28 mars 2013
10 nov. 2010 à 18:30
non non on ajoute pas ' que pour les chaine de caractère mais je vien d essai mais sa ne marche toujours pas
0
raffika Messages postés 269 Date d'inscription dimanche 31 mai 2009 Statut Membre Dernière intervention 12 mars 2011
10 nov. 2010 à 18:46
Et le reste ça marche ? Il n'y a que ça qui pose problème ?
Tu peux donner plus d'informations sur le message d'erreur,
une capture d'écran par exemple ?
Tu as surement fait une erreur de requête SQL,
tu es sûr quel le format demandé est bien Année/Mois/Jour ?
0
Rejoignez-nous