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

[Résolu]
Signaler
Messages postés
14
Date d'inscription
jeudi 3 juillet 2003
Statut
Membre
Dernière intervention
14 juin 2007
-
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
-
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

Messages postés
29
Date d'inscription
vendredi 20 janvier 2006
Statut
Membre
Dernière intervention
24 octobre 2007
1
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
Messages postés
11
Date d'inscription
lundi 28 juin 2004
Statut
Membre
Dernière intervention
14 juin 2007

Sinon essaye avec un between dans ta requete... 
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
54
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# 
Messages postés
1471
Date d'inscription
mardi 5 février 2002
Statut
Membre
Dernière intervention
20 octobre 2014
10
'lut

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

++

BasicInstinct
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
54
Il n'aurait meme pas ce probleme avec des requetes paramétrées 

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

mdr. c'est "elle".

mais tu parles de requete paramétré...je ne vois pas trop ce que c'est ...
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
54
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# 
Messages postés
14
Date d'inscription
jeudi 3 juillet 2003
Statut
Membre
Dernière intervention
14 juin 2007

oui, obdcconnection
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
54
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# 
Messages postés
14
Date d'inscription
jeudi 3 juillet 2003
Statut
Membre
Dernière intervention
14 juin 2007

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!!!!!
Messages postés
14
Date d'inscription
jeudi 3 juillet 2003
Statut
Membre
Dernière intervention
14 juin 2007

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
Messages postés
1024
Date d'inscription
mardi 4 février 2003
Statut
Membre
Dernière intervention
7 juin 2010
64
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)
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
93
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
*/