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

haamome 8 Messages postés lundi 31 août 2009Date d'inscription 1 novembre 2012 Dernière intervention - 17 févr. 2012 à 08:19 - Dernière réponse : haamome 8 Messages postés lundi 31 août 2009Date d'inscription 1 novembre 2012 Dernière intervention
- 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

Répondre au sujet
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 17 févr. 2012 à 09:43
+3
Utile
...
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Renfield
Tenshikris 11 Messages postés mercredi 1 novembre 2000Date d'inscription 17 février 2012 Dernière intervention - 17 févr. 2012 à 09:43
+3
Utile
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)
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Tenshikris
haamome 8 Messages postés lundi 31 août 2009Date d'inscription 1 novembre 2012 Dernière intervention - 17 févr. 2012 à 08:38
0
Utile
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
haamome 8 Messages postés lundi 31 août 2009Date d'inscription 1 novembre 2012 Dernière intervention - 17 févr. 2012 à 13:22
0
Utile
Qui est ce qui à réussi ? hein ? Oui monsieur Oui monsieur

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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.