mouradho4
Messages postés4Date d'inscriptionmardi 23 février 2010StatutMembreDernière intervention 2 mai 2012
-
30 avril 2012 à 16:50
mouradho4
Messages postés4Date d'inscriptionmardi 23 février 2010StatutMembreDernière intervention 2 mai 2012
-
2 mai 2012 à 01:47
Salut tt le monde, j'aimerai avoir de l'aide dans un projet
Pour commencer j'ai une BD sous Sqlserver qui contient 2 tables (Personne(ID,NOM,PRENOM) / Absence(IDA,DATE_DEBUT,DATE_FIN,TYPE,INFO)) liées avec une cardinalité de 1.n des 2 cotés ce qui fais que je peut manipulé à l'aide de la relation AVOIR qui a 2 clé PK,FK (ID et IDA)
Ma question est la suivante : si je choisi une personne d'un control dropdownlist et une date d'un calendrier, comment savoir si cette personne est absente ou presente dans cette date avec le TYPE et INFO si elle est absente ?
et Merci d'avance
cgandco
Messages postés219Date d'inscriptionmercredi 26 octobre 2011StatutMembreDernière intervention22 juin 20179 2 mai 2012 à 01:17
Bonjour,
le Reader.NextResult() permet de selectionner un deuxieme lot de données et pas de passer à l'enregistrement suivant.
While(Reader.Read())
{
}
lit les enregistrements de ton select.
le select suivant te donne les infos que tu veux
SELECT p.ID,p.NOM,p.PRENOM,a.TYPE,a.INFO
FROM Personne p LEFT JOIN Absence a ON p.ID = a.IDPersonne
WHERE p.ID = @IDPersonne
AND p.ID in (select IDPersonne from Absence where @DateChoisie BETWEEN a.DATE_DEBUT AND a.DATE_FIN)
il suffit ensuite de tester si Type et info sont null ou pas.
krimog
Messages postés1860Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention14 février 201549 30 avril 2012 à 18:56
Bonjour
Première chose : merci de mettre un titre plus explicite la prochaine fois.
Déjà, il manque un champ IDPersonne dans ta table absence.
Ensuite, tu as juste à faire une requête du style :
SELECT *
FROM Personne p INNER JOIN Absence a ON p.ID = a.IDPersonne
WHERE p.ID = @IDPersonne
AND @DateChoisie BETWEEN a.DATE_DEBUT AND a.DATE_FIN
Après, si reader.Read() renvoie true, c'est qu'il y a une entrée, et tu peux récupérer reader["TYPE"] et reader["INFO"].
Sinon, c'est que tu n'as pas d'entrée.
Krimog : while (!(succeed = try())) ; - Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -
mouradho4
Messages postés4Date d'inscriptionmardi 23 février 2010StatutMembreDernière intervention 2 mai 2012 30 avril 2012 à 19:28
Merci Mr krimog pour ta reponse , le code ke ta donné affiche la liste des personnes absence alors que je vx le contraire "affiché la liste des personnes presents" et j'ai essayé le DataReader avec While(Reader.Read()) mais Reader.NextResult() ne fonctionne pas il traite tjr que la 1ère personne .
je voulais precisé que le projet est sous ASP.net avec un traitement en code behind en c# et dsl pr le titre je savais pas koi ecrire
mouradho4
Messages postés4Date d'inscriptionmardi 23 février 2010StatutMembreDernière intervention 2 mai 2012 2 mai 2012 à 01:47
Merci cgandco, je vien de trouvé la solution klk part et ui ta raison t areponse est juste sauf ke ta oublié " NOT IN" pour affiché la liste des presents ke leur ID ne dois pas figuré parmi les absents entre les 2 dates