Requete between 2 dates....problèmes : manque des résultats !!!!

Résolu
cs_kme
Messages postés
14
Date d'inscription
jeudi 3 juillet 2003
Statut
Membre
Dernière intervention
14 juin 2007
- 13 juin 2007 à 15:10
cs_coq
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Membre
Dernière intervention
2 août 2014
- 24 juin 2007 à 16:36
bonjour à tous.

j'ai une base access et 2 datetimepicker(des combobox avec un ptit calendrier en fait). Je sélectionne deux dates et je veux retrouver dans ma base toutes les opérations ou qui ont été créees entre ces 2 dates.
Voici un extrait de ma requete :

string date1 =
'#' + combodate_1.Text +
'#';

string date2 =
'#' + combodate_2.Text +
'#';

"SELECT libelle_operation,libelle_modepaiement FROM operation WHERE datecreation_operation > " + date1 +
" and datecreation_operation <" + date2 +
" order by datecreation_operation");

donc, j'ai des résultats mais pas tous. Je ne comprends pas du tout. cela vient-il de ma requete???

merci d'avance pour toutes vos réponses

13 réponses

NeuroCypher
Messages postés
29
Date d'inscription
vendredi 20 janvier 2006
Statut
Membre
Dernière intervention
24 octobre 2007
1
14 juin 2007 à 10:52
Pour etre sur que ton datetime est bon...



string dateFrom = "#" + Date



.Parse(combodate_1.Text).ToString(

"MM/dd/yyyy"
) + "#";
string dateTo = "#" + Date.Parse(combodate_1.Text).ToString(
"MM/dd/yyyy") + "#";

"SELECT libelle_operation,libelle_modepaiement FROM operation WHERE datecreation_operation > " + date1 +
" and datecreation_operation <" + date2 +
" order by datecreation_operation"


Apres si tout n'y est pas c'est peut etre que tu veux inclure les bornes...
Et donc utiliser des >= et <= au lieu des < et >...

---
NeuroCypher
3
nicolastar666
Messages postés
11
Date d'inscription
lundi 28 juin 2004
Statut
Membre
Dernière intervention
14 juin 2007

14 juin 2007 à 11:20
Sinon essaye avec un between dans ta requete... 
3
MorpionMx
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Membre
Dernière intervention
30 octobre 2008
57
13 juin 2007 à 16:02
Salut,

Tu as testé la valeur que prend ta chaine dans ton SGBD ? (pour voir si elle te retourne des resultats)
Autrement, il faut absolument utiliser des requetes paramétrées et non pas construire ta requete ainsi

Mx
MVP C# 
0
BasicInstinct
Messages postés
1471
Date d'inscription
mardi 5 février 2002
Statut
Membre
Dernière intervention
20 octobre 2014
12
13 juin 2007 à 16:31
'lut

as tu essayé en passant tes dates au format US  [mm/dd/yyyy] ?

++

BasicInstinct
0

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

Posez votre question
MorpionMx
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Membre
Dernière intervention
30 octobre 2008
57
13 juin 2007 à 16:37
Il n'aurait meme pas ce probleme avec des requetes paramétrées 

Mx
MVP C# 
0
cs_kme
Messages postés
14
Date d'inscription
jeudi 3 juillet 2003
Statut
Membre
Dernière intervention
14 juin 2007

13 juin 2007 à 20:18
mdr. c'est "elle".

mais tu parles de requete paramétré...je ne vois pas trop ce que c'est ...
0
MorpionMx
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Membre
Dernière intervention
30 octobre 2008
57
13 juin 2007 à 20:22
Toutes mes excuses, on est tellement habitué a voir des "il" dans le coin... 

Je veux bien te donner un exemple, mais pour qu'il soit le plus adapté possible, il faut que je sache avec quels objets de connexion tu joues. OdbcConnection ? Autre ?

Mx
MVP C# 
0
cs_kme
Messages postés
14
Date d'inscription
jeudi 3 juillet 2003
Statut
Membre
Dernière intervention
14 juin 2007

13 juin 2007 à 22:10
oui, obdcconnection
0
MorpionMx
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Membre
Dernière intervention
30 octobre 2008
57
13 juin 2007 à 22:20
Alors ca doit donner quelque chose comme ca, avec peut-etre quelques petites corrections a faire

<hr />
using (OdbcConnection connection = new OdbcConnection(connectionString))
{
   OdbcCommand cmd = new OdbcCommand("SELECT libelle_operation,libelle_modepaiement FROM operation WHERE datecreation_operation > @Date1 and datecreation_operation < @Date2 order by datecreation_operation ");
   OdbcParameter paramDate1 = new OdbcParameter("@Date1", OdbcType.DateTime);
   paramDate1.Value = combodate_1.Text;
   OdbcParameter paramDate2 = new OdbcParameter("@Date2", OdbcType.DateTime);
   paramDate2.Value = combodate_2.Text;
   cmd.Parameters.Add(paramDate1);
   cmd.Parameters.Add(paramDate2);
// Execution de ta requete, etc.
}
<hr />
OdbcParameter sur MSDN

Mx
MVP C# 
0
cs_kme
Messages postés
14
Date d'inscription
jeudi 3 juillet 2003
Statut
Membre
Dernière intervention
14 juin 2007

14 juin 2007 à 10:18
j'ai essayé mais c pareil

il manque toujours des opérations à la fin. Quand je fais la requete depuis ma base, c'est nikel et depuis mon prog il en manque....je suis paumée........

venez en secours à une belle demoiselle en detresse!!!!!
0
cs_kme
Messages postés
14
Date d'inscription
jeudi 3 juillet 2003
Statut
Membre
Dernière intervention
14 juin 2007

14 juin 2007 à 10:22
petite précision :

quand je recherche mois par mois par exemple du 01/01/2006 au 31/01/2006 , ça marche, par année aussi
par contre, quand je fais du 10/01/2006 au 31/01/2006 aucun résultat.pourtant il y en a plusieurs dans ma base
0
SharpMao
Messages postés
1024
Date d'inscription
mardi 4 février 2003
Statut
Membre
Dernière intervention
7 juin 2010
67
14 juin 2007 à 11:30
Hello,

Encore une chose pour les requêtes paramétrées, utilise directement un Datetime comme valeur du paramètre pour ne pas avoir de problème de format de date.

Amicalement, SharpMao

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)
0
cs_coq
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Membre
Dernière intervention
2 août 2014
99
24 juin 2007 à 16:36
Salut,

Et ODBC ne supporte pas les paramètres nommés, il faut passer par le caractère '?' pour marquer la position et ensuite ajouter les instances d'OdbcParameter dans le bon ordre.

/*
coq
MVP Visual C#
CoqBlog
*/
0