gretata
Messages postés172Date d'inscriptionlundi 22 mai 2006StatutMembreDernière intervention19 janvier 2011
-
14 juin 2006 à 16:20
gretata
Messages postés172Date d'inscriptionlundi 22 mai 2006StatutMembreDernière intervention19 janvier 2011
-
15 juin 2006 à 11:06
Re_bonjour !!
<hr>
j'ai un problème pour comparer des dates celle du jour et celle
qui est enregistré dans la bdd (acess)
MorpionMx
Messages postés3466Date d'inscriptionlundi 16 octobre 2000StatutMembreDernière intervention30 octobre 200857 14 juin 2006 à 18:31
Woot -> Va voir la doc de la classe TimeSpan...
Rien a voir avec la comparaison de 2 dates.
Gretata, si jamais la technique de bidou ne fonctionne pas, essai d'afficher les valeurs dans des MessageBox (ou dans un log, ou autre), histoire de les comparer.
Ou plus simple, fais du pas a pas lors de l'execution de ton projet.
gretata
Messages postés172Date d'inscriptionlundi 22 mai 2006StatutMembreDernière intervention19 janvier 2011 15 juin 2006 à 08:25
bonjour a tous !! et merci d'avoir répondu
le truc c'est que il ne veut pas comparer les dates car "impossible de convertir de 'System.Type' en 'System.DateTime' " il me dit le debug.
avec le DateTime.Compare( la date d'aujourd'hui,la date qui et dans une colonne de la bdd);
je pensé que ça pourai fonctionner, mais non,
alors je les mis a plusieurs endroit puis dans un "si" et le mieux car si la date d'aujourd'hui
et égale à la date de la bdd, la ligne est effacer ( voila se que je veut faire si sa peut aider).
for
(
int i = 0; i <= longueur; i++)
{
//base_données_gretaDataSet.BaseDonnée_Greta.Rows[i][6].GetType() je me suis dit que sa pouvez renvoyé le tpe pour qu'il comprenne que c'est un champ date qui a dans la bbd
if (
DateTime.Compare(
DateTime.Now, base_données_gretaDataSet.BaseDonnée_Greta.Rows[i][6].GetType()))
//mais ereur La méthode surchargée correspondant le mieux à 'System.DateTime.Compare(System.DateTime, System.DateTime)' possède des arguments non valides {
// suppression de la ligne
baseDonnée_GretaDataGridView.Rows.RemoveAt(i);
// mise à jour de la base
baseDonnée_GretaTableAdapter.Update(base_données_gretaDataSet.BaseDonnée_Greta);
base_données_gretaDataSet.AcceptChanges();
MessageBox.Show(
"ok");
}
j'en suis la, je commense a etre désespéré car c'est la fin de mon projet, juste le fait de pouvoir effacer la personnes si elle a dépassé sont quota de jours,
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 15 juin 2006 à 08:57
Mais pourquoi tu appelles la méthode GetType() ??? c'est évident que Compare attends un object DateTime et pas un Type.
Si tu reçoit un string de la DB, tu peux faire un DateTime.Parse (ou TryParse, je ne sais pas si ça existe pour cet object) afin de transformer ton string en DateTime valide...
MorpionMx
Messages postés3466Date d'inscriptionlundi 16 octobre 2000StatutMembreDernière intervention30 octobre 200857 15 juin 2006 à 10:10
Le probleme que tu rencontres certainement depuis le début, c'est que DateTime.Now va te ramener l'heure, minute, seconde ... de son appel, est c'est pour ca que ton if ne passe pas (je pense).
Donc appele plutot DateTime.Now.ToShortDateString()
Sinon, donc ton dernier bout de code, ca ne fonctionne pas parce que Compare retourne un int et pas un bool (je t'invite a aller lire la doc).
De plus, si la chaine qui se trouve dans le cell de ton Datagrid n'est pas une date valide, ton programme va planter méchament. Donc il faut plutot utiliser TryParse.
Mais essaie d'abord de comparer avec la valeur de ta cell avec ToShortDateString() comme dit plus haut, pour voir si ton probleme ne vient pas de la.