2010-11-15 2 views
1

J'ai une méthode qui exporte le contenu de la base de données vers des fichiers Excel. La méthode prend comme paramètre un paramètre DataReader et un paramètre int - le nombre de lignes. Pour le nombre de lignes j'utilise un ensemble de données, que je remplis en utilisant la même requête que pour le lecteur de données. Donc je l'exécute deux fois ... Y a-t-il un moyen de l'éviter? Puis-je obtenir le nombre de lignes du lecteur de données?Datareader vs Dataset

Merci!

+2

Est-ce le nombre de lignes à exporter, ou le nombre de lignes dans le tableau? Et mettez-vous en œuvre la méthode ou l'appelez-vous? Votre question est actuellement * très * peu claire. –

+0

désolé 'bout de ça! Je l'appelle, et c'est le nombre de lignes dans la table ... – maephisto

Répondre

0

Il est préférable de modifier la requête et d'ajouter une colonne supplémentaire en utilisant la fonction ROW NUMBER() de SQK SERVER.Il obtiendra le numéro de chaque ligne sélectionnée.Utilisez un DataTable pour contenir les valeurs que vous avez après avoir exécuté le sélectionnez une requête. Vous aurez donc une colonne supplémentaire dans votre datatable et vous utiliserez simplement la colonne que vous venez d'imprimer combien de lignes vous voulez imprimer. Ainsi, dans une boucle for, il est possible d'imprimer les colonnes depuis l'index de départ jusqu'à l'index.

La dernière colonne de dataTable contient le nombre de lignes sélectionnées en exécutant la requête.

J'espère que votre problème résoudra par cette méthode