2011-03-08 5 views
-1

J'ai une application qui utilise un aps: GridView. Le GridView est rempli à l'aide d'un DataSource qui appelle une procédure stockée. DataSource transmet les paramètres à la procédure stockée en fonction de certains champs de texte. La page a fonctionné plus lentement que voulu, donc je faisais des vérifications.Grille Données liées à la procédure stockée appelée plusieurs fois

J'ai exécuté SQL Profiler tout en chargeant la page, et j'ai vu la procédure stockée s'appeler deux fois . J'ai parcouru le code et j'ai découvert que dans l'événement Chargement de page terminé, c'était l'endroit où cela se passait. Dans cet événement, j'ai défini la valeur d'un paramètre pour la procédure stockée, puis j'ai créé une DataBind sur GridView pour récupérer les données. Comme je passais par le code, j'ai regardé le profileur SQL. Quand je suis arrivé à l'étape de réglage du paramètre, la procédure stockée n'avait pas encore été appelée. Lorsque je suis passé à travers cela et que je suis arrivé à la commande DataBind (avant d'exécuter cette étape), le profileur SQL a montré que la procédure stockée avait été appelée. Ensuite, j'ai fait le DataBind et le StoredProcedure a été appelé à nouveau.

Ma question est, comment puis-je obtenir l'ensemble de paramètres, et obtenir les données GridView liées, et appeler seulement le StoredProcedure une fois? Si je commente l'étape DataBind, le StoredProcedure ne sera jamais appelé (ce qui me semble vraiment étrange ...).

Pouvez-vous m'aider à ce sujet? Merci.

+0

Pouvez-vous poster du code afin que nous puissions voir ce que vous faites? – Chuck

Répondre

1

Cela peut se produire si vous affectez la source de données dans la conception et le faites aussi dans le code derrière.

+0

La seule façon de supprimer l'appel de la procédure stockée avec les valeurs par défaut serait de désactiver la grille et de définir manuellement la source de données de GridView dans le code. – vinayvasyani

Questions connexes