Insertion d'une date de naissance dans ma Table [Résolu]

Messages postés
8
Date d'inscription
lundi 31 août 2009
Statut
Membre
Dernière intervention
1 novembre 2012
- - Dernière réponse : haamome
Messages postés
8
Date d'inscription
lundi 31 août 2009
Statut
Membre
Dernière intervention
1 novembre 2012
- 17 févr. 2012 à 13:22
Bonjour à tous et à toutes,

Voilà je vous expose mon problème :

Je développe une application pour une école sous VB.Net 2008 en connexion avec une BDD qui se trouve sur le serveur (easyPHP en local pour l'instant). Quand je souhaite insérer une ligne dans ma table (etudiant), la connexion se fait mais il ne veux pas l'ajouter dans ma table. Il me dit que la syntaxe est incorrecte.

Alors voici ma requête (qui au passage n'est sur qu'une seul ligne) mais par souci de compréhension :

Dim requete_ajout As String =

"INSERT INTO etudiant VALUES (
'" & TB_Maticule.Text & "',
'" & TB_Num_Dossier.Text "',
'" & CB_Civ_E.Text & "',
'" & TB_Nom_Pat_E.Text & "',
'" & TB_Nom_Mar_E.Text & "',
'" & TB_Pre_E.Text & "',
'" & CB_Sex_E.Text & "',
" & TB_Age_E.Text & ",
#" & TB_Dat_Nai_E.Text & "#,
'" & TB_Lie_Nai_E.Text & "',
'" & TB_Nat_E.Text & "',
'" & CB_Sit_Fam_E.Text & "',
'" & TB_Adr_E.Text & "',
'" & TB_Cod_Pos_E.Text & "',
'" & TB_Vil_E.Text & "',
" & TB_Tel_Fix_E.Text & ",
" & TB_Tel_Por_E.Text & ",
'" & TB_Adr_Email_E.Text & "',
'" & CB_Cho_Fil_E.Text & "',
'" & eleve_E & "',
'" & eleve_S & "',
'" & CB_Cho_Ann_Lic_Sej_Lin_E.Text & "'
)"


Voici le code VB.net de ma connexion à la base + exécution de la requête :

Imports MySql.Data.MySqlClient
----------------------------------------------------------------
Module ModuleFonction

Public MyConnection As MySqlConnection = New MySqlConnection
Public MyCommand As MySqlCommand = New MySqlCommand
Public MyReader As MySqlDataReader
Public Choix_Action As String
Public Choix_Categorie As String
----------------------------------------------------------------
'Déclaration de la variable qui spécifie les informations de connexion à la BDD MySQL.
Dim link_BDD As String = "Server=localhost;User Id=root;Password=;Database=bdiash"
----------------------------------------------------------------

Public Sub connexion()

MyConnection.Close()
MyConnection.ConnectionString = link_BDD

Try
If MyConnection.State = ConnectionState.Closed Then
MyConnection.Open()
MsgBox("Connection à la base de donnée MySQL réussi")
Else
MyConnection.Close()
MsgBox("Connection est fermé.")
End If
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub

----------------------------------------------------------------
'Procédure exécution de la requête d'ajout
Public Sub ajout(ByVal requete As String)

'Procédure exécution de la requête d'ajout
MyConnection.Close()
MyConnection.ConnectionString = link_BDD
MyConnection.Open()

MyCommand = MyConnection.CreateCommand
Mycommand.CommandText = requete
MyCommand.ExecuteNonQuery()

MsgBox("La ligne a été ajouté")
MyConnection.Close()

End Sub

End Module



Alors pour ma BDD tout mes champs son en Varchar (sauf TB_Age_E.Text qui est au format int, TB_Dat_Nai_E.Text qui est au format DATE, TB_Tel_Fix_E.Text et TB_Tel_Por_E.Text qui sont au format int)

Quand je change le type date_naissance en varchar (dans ma BDD) et que je met les '' dans ma valeur, la requête s’exécute et la ligne est ajouté. Mais quand je remets date_naissance en type DATE et que je met les ## il ne veut plus. Même si je tente d'insérer dans les formats :

JJ/MM/AAAA
JJ-MM-AAAA
AAAA/MM/JJ
AAAA-MM-JJ

Il me répond toujours syntaxe incorrecte

Que faire
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
17280
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
57
3
Merci
...
une date est un numérique

le JJ-MM-AAAA n'est que TA vision de chose, en tant qu'humain

tu dois transmettre :
AAAA-MM-JJ

de manière a lever toute ambiguité.


Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 196 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Renfield
Messages postés
11
Date d'inscription
mercredi 1 novembre 2000
Statut
Membre
Dernière intervention
17 février 2012
1
3
Merci
Bonjour ,

Je te conseille de récupérer les jours mois année séparément (à l'aide d'une liste déroulante par exemple pour éviter les problèmes) et ensuite tu concatènes dans le format que tu veux.

Essaye de formater ta date avant de l'envoyer dans ta requête.
Pour être que sur ta date soit au bon format dans ta BDD, passe par les fonction (Pour mysql : str-to-date http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_str-to-date)

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 196 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Tenshikris
Messages postés
8
Date d'inscription
lundi 31 août 2009
Statut
Membre
Dernière intervention
1 novembre 2012
0
Merci
Par un mystérieux hasard j'ai réussi à insérer ma ligne en mettant date_naissance en type DATE et en mettant des '' à la place des ##

Le problème qui se pose maintenant c'est le format :

Comment passer de AAAA-MM-JJ à JJ-MM-AAAA car :

- Si je saisie la date 2012-10-10 |-- il m'affiche --> 2012-10-10 dans ma BDD

- Alors que si je saisie la date 10-10-2012 |-- il m'affiche --> 0000-00-00 dans ma BDD

Je vais faire quelques recherches si quelqu'un à une solution je suis preneurs.
Commenter la réponse de haamome
Messages postés
8
Date d'inscription
lundi 31 août 2009
Statut
Membre
Dernière intervention
1 novembre 2012
0
Merci
Qui est ce qui à réussi ? hein ? Oui monsieur Oui monsieur

Super ça fonctionne nikel ! Merci à vous
Commenter la réponse de haamome