Accès aux données, affichage, les techniques

Résolu
flouli Messages postés 3 Date d'inscription lundi 5 mai 2008 Statut Membre Dernière intervention 10 mai 2008 - 5 mai 2008 à 20:26
flouli Messages postés 3 Date d'inscription lundi 5 mai 2008 Statut Membre Dernière intervention 10 mai 2008 - 10 mai 2008 à 00:30
Bonsoir à tous !
Je ne savais pas trop où poster ce message, je suis débutant en Asp.net et ceci est mon premier message.

J'aurais voulu savoir :

j'aimerais afficher des données sur une page (non en fait : je les affiche actuellement) mais j'utilise le contrôle DataList (qui fait à peu près tout tout seul, de la connexion à l'affichage, même si il y a quelques petits points à reprendre).

Et je me demandais si ce n'était pas plus "propre" d'utiliser un objet SqlDataReader et de faire une boucle, et d'insérer ça dans des label ou autre...?
Quels sont les us et coutûmes ?
J'ai l'habitude du php donc afficher des données sans boucle explicite, ça me perturbe (mais c'est tellement plus simple).

Donc pour le moment, j'affiche mes données avec le DataList et ItemTemplate, ça va très bien. Par contre j'ai voulu faire une vérification sur la requête (s'il n'y a pas de donnée pour cette requête dans la base, j'affiche un message d'erreur on va dire), et comme je ne sais pas s'il y a des évènements prévus pour, j'ai fait ça comme ça (c'est sûrement horrible,  me tappez pas svp :) ) :
Dim

dataReaderAffTick
As SqlDataReader

Dim verifSiTick
As SqlCommand

Dim cxn
As
New SqlConnectioncxn.ConnectionString = tickets.ConnectionString

cxn.Open()
verifSiTick New SqlCommand(tickets.SelectCommand, cxn)dataReaderAffTick verifSiTick.ExecuteReader()

If dataReaderAffTick.Read =
FalseThenrien.Visible Truerien.Text

"
" & rien.Text &
" pour le " & CalendrierUnique.SelectedDate &
" :("

Elserien.Visible =

False

End
If

Merci d'avance pour vos conseils !
A bientôt

4 réponses

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
7 mai 2008 à 23:50
Bonjour,

comment bind tu ton datalist ? avec un XXXDataSource ? si oui tu peux utiliser l'événement selected qui te permettra de savoir combien de ligne la requete à retourner (ce qui t'évite de faire une requete inutile).

Sinon, au niveau de l'architecture, tu as plusieurs facons de faire, soit comme tu fais, soit en faisant le binding dans le code

myListview.DataSource = dataLayer.GetDatas();
myListView.DataBind();

Je prefere la deuxieme approche ca ca separe mieux les couches.

<hr />Cyril - MSP - MCPD ASP.net & MCTS SQL - Consultant indépendant
3
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
9 mai 2008 à 23:47
Bonjour,

sisi il y a bien un event Selected au niveau de SqlDataSource (http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.sqldatasource.selected.aspx) Tu es sur que tu utilises un SqlDataSource pour accéder à ta base ?

<hr />Cyril - MSP - MCPD ASP.net & MCTS SQL - Consultant indépendant
3
flouli Messages postés 3 Date d'inscription lundi 5 mai 2008 Statut Membre Dernière intervention 10 mai 2008
9 mai 2008 à 18:58
Bonjour,

Merci pour ta réponse.

Cependant il y a une chose que je n'ai pas compris (je test depuis une heure les différentes méthodes de divers objets)...
Il n'y a pas d'évènement selected pour un objet SQLdatasource !

Je me suis un peu renseigné donc (mais la msdn n'est pas très clair pour un débutant sur ce point).
Ca parle de DataSourceSelectArguments et de IEnumerator mais je ne vois pas trop comment utiliser ce premier (j'ai un peu tout essayé).

Merci d'avance pour la réponse.
0
flouli Messages postés 3 Date d'inscription lundi 5 mai 2008 Statut Membre Dernière intervention 10 mai 2008
10 mai 2008 à 00:30
oui excuses moi !
J'ai même pas pensé à développer la liste déroulante quand je double cliquais sur le sqldatasource... J'ai planté 2 heures pour ça... J'ai honte :D

Pour info tu avais déjà répondu à une personne sur ce point à l'url : http://www.aspfr.com/infomsg_NOMBRE-ENREGISTREMENTS-RETOURNES-SQLDATASOURCE_869884.aspx

Mais merci encore.


Par contre je n'ai pas bien compris l'histoire du DataBind mais je testerai demain. J'aime bien apprendre à taton (même si j'avoue que j'ai un livre pour apprendre l'asp.net).
0
Rejoignez-nous