Coolpix08
Messages postés150Date d'inscriptiondimanche 14 mars 2004StatutMembreDernière intervention21 décembre 2007
-
31 mai 2006 à 12:12
Coolpix08
Messages postés150Date d'inscriptiondimanche 14 mars 2004StatutMembreDernière intervention21 décembre 2007
-
8 juin 2006 à 10:26
Il y aurait quelqu'un qui
pourrait m'expliquer comment faire pour éviter de ce reconnecter a la
base à chaque PostBack et refaire une requete Select pour récupérer à chaque fois les meme données.
J'aimerais
acceder a la base une seule fois, au chargement de la page, et apres
jouer avec les données dans les PostBack sans refaire un appel. Il me semble que les données pouvait passer dans le ViewState mais je ne vois pas trop comment
Si quelqu'un pouvait mettre un bout de code assez complet ca maiderai a comprendre.
Ah oui tant que je suis dans les questions. Vous pourriez m'éclaircir sur l'utilisation des DataSet DataRead car il parle de connecter et non connecté mais je vois pas à quel endroit. Ainsi que la différence de donnée au datasource du datagrid directement la table du dataset ou de lui donnée la vue avec DefaultView????
Coolpix08
Messages postés150Date d'inscriptiondimanche 14 mars 2004StatutMembreDernière intervention21 décembre 20072 8 juin 2006 à 10:26
Il faudrait peut etre voir du coté des requetes SQL carrement pour limiter le nombre d'enregistrement...mais la faudrait carrement une gestion voir meme une classe suplémentaire pour faire ca...à moins qu'il soit possible d'enregistrer un CurseurSQL et de n'extraire que les 10 prochaines lignes...
Cette idé est a creusé...peut etre dans un prochain post!!
bernie666
Messages postés427Date d'inscriptionmercredi 1 octobre 2003StatutMembreDernière intervention29 janvier 20081 1 juin 2006 à 13:54
salut
Le viewState va te permettre de conserver les données dans la page mais sinon tu peux utiliser les sessions ou le cache (tout depends si les données affichées sont les memes pour tous les clients ou non)
ex : dans ton form_load
if(!isPostBack){ //au premier chargement de ta page
maSqlConnexion.open();
sqlDataAdapter da = new sqlDataAdapter("requete",maSqlConnexion);
dataset ds = new dataSet();
da.fill(ds);
//Vu que tu utilise un dataAdapter et un dataSet tu peut fermer la connexion car tu peux travailler en mode deconnecter
maSqlConnexion.close();
//Ensuite tu stock ton dataSet en Session
Session["monDs"] = ds;
//Affichage des donées
monDataGrid.datasource = ds.table[0];
}
else{ //Si tu reviens sur ta page apres un postBack
//Plus besoin d avoir acces a ta bdd
monDataGrid.datasource = ((DataSet)Session["monDs"]).table[0];
}
j espere que j'ai repondu a ta question :p
sinon ben les dataView vont te permettre de filtrer les données dans les tables de ton dataSet
Coolpix08
Messages postés150Date d'inscriptiondimanche 14 mars 2004StatutMembreDernière intervention21 décembre 20072 2 juin 2006 à 09:37
Aaaaahh!
Merci beaucoup de m'avoir répondu ca fait maintenant quelque jours que je galere sur ce problème et queje ne peux pas commencer mon site...
Ouais je me suis également renseigner sur la structure de ASP.NET et c'est la solution aussi que j'envisageais mais mes connaissances étaient encore limiter, jattendait justement une confirmation!!! Et voila.
Par contre, il me faudrait aussi un léger renseignement supplémentaire. Voila dans le cas d'une base de donnée énorme, la Session va etre grosse aussi au niveau mémoire MAIS de toutes facons, je suppose que cela est quand meme beaucoup plus avantageux par cette methode que d'appeler à chaque fois la base de données et de passer à chaque fois par le dataset qui stocke tout également en mémoire?
En faite, j'aimerais avoir confirmation que c'est la meilleur solution dans le cas d'une grosse base de donnée et de consommation mémoire???
Sinon, je ne sais pas du tout comment il marche mais le dataread étant en mode connecté, je devrait à chaque postback me reconnecté. Mais si il marche en simple pointeur sur la base, il ne consommerait pas de mémoire intermédiaire non? Ainsi sur de grosse base de donnée ca m'éviterait de faire de la copie de mémoire inutile pour ne filtrer que 10 lignes dans le cas d'un datagrid paginer???
Si tu pouvait m'éclaircir sur ce dernier point ca serait vraiment super!!! Car c'est vraiment sur le dernier point sur lequel je bloque!!