dibax10
Messages postés65Date d'inscriptiondimanche 25 avril 2010StatutMembreDernière intervention28 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
raffika
Messages postés269Date d'inscriptiondimanche 31 mai 2009StatutMembreDernière intervention12 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)
dibax10
Messages postés65Date d'inscriptiondimanche 25 avril 2010StatutMembreDernière intervention28 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
raffika
Messages postés269Date d'inscriptiondimanche 31 mai 2009StatutMembreDernière intervention12 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.
dibax10
Messages postés65Date d'inscriptiondimanche 25 avril 2010StatutMembreDernière intervention28 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 ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
raffika
Messages postés269Date d'inscriptiondimanche 31 mai 2009StatutMembreDernière intervention12 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...
raffika
Messages postés269Date d'inscriptiondimanche 31 mai 2009StatutMembreDernière intervention12 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 :
dibax10
Messages postés65Date d'inscriptiondimanche 25 avril 2010StatutMembreDernière intervention28 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
raffika
Messages postés269Date d'inscriptiondimanche 31 mai 2009StatutMembreDernière intervention12 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
dibax10
Messages postés65Date d'inscriptiondimanche 25 avril 2010StatutMembreDernière intervention28 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
raffika
Messages postés269Date d'inscriptiondimanche 31 mai 2009StatutMembreDernière intervention12 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
dibax10
Messages postés65Date d'inscriptiondimanche 25 avril 2010StatutMembreDernière intervention28 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
dibax10
Messages postés65Date d'inscriptiondimanche 25 avril 2010StatutMembreDernière intervention28 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'
raffika
Messages postés269Date d'inscriptiondimanche 31 mai 2009StatutMembreDernière intervention12 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
raffika
Messages postés269Date d'inscriptiondimanche 31 mai 2009StatutMembreDernière intervention12 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)
raffika
Messages postés269Date d'inscriptiondimanche 31 mai 2009StatutMembreDernière intervention12 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 ?