Where + Date

Signaler
Messages postés
15
Date d'inscription
jeudi 15 mai 2003
Statut
Membre
Dernière intervention
25 novembre 2008
-
Messages postés
15
Date d'inscription
jeudi 15 mai 2003
Statut
Membre
Dernière intervention
25 novembre 2008
-
Bonjour,

j'ai un problème que je n'arrive pas à résoudre, d'où ma question.
Je suis en Vb 2005.net et j'ai une base donnée sous sql serveur express 2005.

Mon code ci dessus est d'afficher un champ de la requete dans un msgbox en fonction de la selection dans une listbox.

Pour infos:
le champ code Prix dans la BD est de type Datetime
la variable DateValCodePrix est de type Datetime (appel de fonction avec passage de paramètre)

Mon code:

Try

'déclaration de la connexion
dim SqlConnexion1
As SqlConnection =
New SqlConnection(
"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\BD_BN3F_SKi-Wake.mdf;Integrated Security=True;User Instance=True")

Dim MycommandAccesCodePrix
As SqlCommand = SqlConnexion1.CreateCommand()

'Format(DateValCodePrix, "M/d/yyyy H:m:s")
MycommandAccesCodePrix.CommandText "SELECT T_Prix.[Code Prix], T_Prix.Prix, T_Prix.[Code Categorie_Discipline], T_Categorie_Discipline.Categorie_Discipline, T_Prix.[Code Categorie_Age], T_Categorie_Age.Categorie_Age FROM T_Prix INNER JOIN T_Categorie_Age ON T_Prix.[Code Categorie_Age] T_Categorie_Age.[Code Categorie_Age] INNER JOIN T_Categorie_Discipline ON T_Prix.[Code Categorie_Discipline] = T_Categorie_Discipline.[Code Categorie_Discipline] WHERE (T_Prix.[Code Prix] = #" & DateValCodePrix &
"#)"SqlConnexion1.Open()

Dim myReader
As SqlDataReader = MycommandAccesCodePrix.ExecuteReader()

Do
While myReader.Read()
       MsgBox(myReader.GetDateTime(1).ToString)

Loop
myReader.Close()
SqlConnexion1.Close()

Catch ex
As SqlException
MsgBox(ex.Message)

End
Try

Mon problème est lors de l'execution du programme, j'ai une msgbox avec une erreur de type syntaxe incorrecte de type 01.

J'ai cherché mais pas trouver, pouvez vous m'aider.

Merci pour votre aide.

10 réponses

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
yyyy/mm/dd

(bien, les # commencent a rentrer dans les moeurs)
Messages postés
15
Date d'inscription
jeudi 15 mai 2003
Statut
Membre
Dernière intervention
25 novembre 2008

si j'ai bien compris ton idée, je devrais faire comme ca:
MycommandAccesCodePrix.CommandText "SELECT T_Prix.[Code Prix], T_Prix.Prix, T_Prix.[Code Categorie_Discipline], T_Categorie_Discipline.Categorie_Discipline, T_Prix.[Code Categorie_Age], T_Categorie_Age.Categorie_Age FROM T_Prix INNER JOIN T_Categorie_Age ON T_Prix.[Code Categorie_Age] T_Categorie_Age.[Code Categorie_Age] INNER JOIN T_Categorie_Discipline ON T_Prix.[Code Categorie_Discipline] = T_Categorie_Discipline.[Code Categorie_Discipline] WHERE (T_Prix.[Code Prix] = #" & Format(DateValCodePrix, "yyyy/mm/dd H:m:s") & "#)"

Merci pour votre aide
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
"YYYY\/MM\/DD HH\:NN\:SS"
Messages postés
15
Date d'inscription
jeudi 15 mai 2003
Statut
Membre
Dernière intervention
25 novembre 2008

bonjour, j'ai mis ceci
la valeur de la variable Datevalcodeprix (type datetime) m'affiche: DateValCodePrix = #1/29/2008 2:56:05 PM#

...... WHERE (T_Prix.[Code Prix] = #"

& Format(DateValCodePrix,
"M\/d\/yyyy h\:m\:ss") &
"#)"

et je recois erreur de syntaxe incorrect 2.

Je suis toujours bloqué, et j'ai utilisé d'autres solutions pour la condition where et toujours erreur syntaxe incorrect 2.

Merci pour votre aide
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
et si tu essaye avec le format que je t'ai suggéré, ta requete passe ?
Messages postés
15
Date d'inscription
jeudi 15 mai 2003
Statut
Membre
Dernière intervention
25 novembre 2008

en mettant ceci:


............WHERE (T_Prix.[Code Prix] = #" & Format(DateValCodePrix,
"YYYY\/MM\/DD HH\:NN\:SS") &
"#)"

je reçois erreur de syntaxe incorrect 14

Ca ne fonctionne pas, autres idées?

Merci.
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
nb, c'est un format VB6
a voir a le passer en .net, l'idée restant d'obtenir

2008/1/29 17:03:10
Messages postés
15
Date d'inscription
jeudi 15 mai 2003
Statut
Membre
Dernière intervention
25 novembre 2008

SVP, quelqu'un a une autre solution à me proposer, car la je suis bloqué.

Merci pour votre aide.
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
en passant...
est-ce normal qu'un champ nommé "Code Prix" contiennent en fait une date ???

quel est le type de ce champ ?
Messages postés
15
Date d'inscription
jeudi 15 mai 2003
Statut
Membre
Dernière intervention
25 novembre 2008

type du champ "Code prix": datetime

le champ est type datetime pour faciliter sa gestion et sa maintenance.(numérotion auto pour pratique pour mon cas).

d'autres idées pour mon problème

Merci.