[ASP 2.0] Connaitre le nombre d'enregistrements

Le
Cyril
Bonjour

J'ai une gridview reliée à un SqlDataSource.

J'aimerai connaître le nombre d'enregistrements remontés par ma
requête.

J'ai utilisé l'évènement OnSelected de mon datasource qui a comme
argument un SqlDataSourceStatusEventArgs qui me retourne AffectedRows
(nombre de lignes affectées par la requête). Donc là c'est tout bon.

Le pb est que j'applique un filtre sur mon datasource et même si je
n'ai plus qu'une dizaine d'enregistrements qui sont remontés par la
requête, mon AffectedRows est toujours égal au nombre d'enregistrements
total.

Qq'un a-t-il une solution ?

Merci

Cyril
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Daniel
Le #12189021
Personnellement, je faits en plus une requette count pour récuppérer le
nombre d'enregistrements.

Si quelqu'un a une autre solution je prendrai aussi.

"Cyril"
Bonjour

J'ai une gridview reliée à un SqlDataSource.

J'aimerai connaître le nombre d'enregistrements remontés par ma requête.

J'ai utilisé l'évènement OnSelected de mon datasource qui a comme argument
un SqlDataSourceStatusEventArgs qui me retourne AffectedRows (nombre de
lignes affectées par la requête). Donc là c'est tout bon.

Le pb est que j'applique un filtre sur mon datasource et même si je n'ai
plus qu'une dizaine d'enregistrements qui sont remontés par la requête,
mon AffectedRows est toujours égal au nombre d'enregistrements total.

Qq'un a-t-il une solution ?

Merci

Cyril




Laurent Jordi
Le #12189011
Salut,

Pour ma part je ne travaille qu'avec des procédures stockées, c'est plus
rapide, plus propre, plus stable, le typage est plus efficace et il est très
facile de créer des paramètres de sortie qui peuvent ensuite être utilisés
dans les applications.

L'utilisation des procédures stockées est grandement facilité par l'ado.net
c'est dommage de s'en priver.

Bien à toi

Laurent Jordi
http://www.ezlogic.mc
http://www.laurentjordi.net


"Daniel" news: uF%
Personnellement, je faits en plus une requette count pour récuppérer le
nombre d'enregistrements.

Si quelqu'un a une autre solution je prendrai aussi.

"Cyril"
Bonjour

J'ai une gridview reliée à un SqlDataSource.

J'aimerai connaître le nombre d'enregistrements remontés par ma requête.

J'ai utilisé l'évènement OnSelected de mon datasource qui a comme
argument un SqlDataSourceStatusEventArgs qui me retourne AffectedRows
(nombre de lignes affectées par la requête). Donc là c'est tout bon.

Le pb est que j'applique un filtre sur mon datasource et même si je n'ai
plus qu'une dizaine d'enregistrements qui sont remontés par la requête,
mon AffectedRows est toujours égal au nombre d'enregistrements total.

Qq'un a-t-il une solution ?

Merci

Cyril








Jérôme Noirfalise
Le #12188971
Bonsoir Cyril,

Lorsqu'un SqlDataSource est paramétré en mode DataSet, on peut récupérer une
DataView lors de l'appel de la méthode Select et accéder ainsi à sa propriété
Count (nb de rows après application du filtre):

DataView dv =
(DataView)SqlDataSource1.Select(DataSourceSelectArguments.Empty);
int nbRows = dv.Count;

Cette méthode est appelée de manière implicite quand le SqlDataSource est
lié à une GridView. Dès lors, la seule façon de récupérer la DataView est
dans l'évènement RowDataBound de ta GridView:

bool isFirstTime = true;
...
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (this.isFirstTime)
{
System.Data.DataView dv = (e.Row.DataItem as
System.Data.DataRowView).DataView;
int nbRows = dv.Count;
}
}
}

En espérant que ça répondra à ta question,
Amicalement,

Jérôme Noirfalise
---------------------
MCSD .NET
.NET Consultant @ AUSY Luxembourg
http://www.jnoirfal.be


"Cyril" a écrit :

Bonjour

J'ai une gridview reliée à un SqlDataSource.

J'aimerai connaître le nombre d'enregistrements remontés par ma
requête.

J'ai utilisé l'évènement OnSelected de mon datasource qui a comme
argument un SqlDataSourceStatusEventArgs qui me retourne AffectedRows
(nombre de lignes affectées par la requête). Donc là c'est tout bon.

Le pb est que j'applique un filtre sur mon datasource et même si je
n'ai plus qu'une dizaine d'enregistrements qui sont remontés par la
requête, mon AffectedRows est toujours égal au nombre d'enregistrements
total.

Qq'un a-t-il une solution ?

Merci

Cyril





Cyril
Le #12188931
Ca marche parfaitement.

Merci beaucoup ! :D

Cyril

Jérôme Noirfalise a formulé ce vendredi :
Bonsoir Cyril,

Lorsqu'un SqlDataSource est paramétré en mode DataSet, on peut récupérer une
DataView lors de l'appel de la méthode Select et accéder ainsi à sa propriété
Count (nb de rows après application du filtre):

DataView dv =
(DataView)SqlDataSource1.Select(DataSourceSelectArguments.Empty);
int nbRows = dv.Count;

Cette méthode est appelée de manière implicite quand le SqlDataSource est
lié à une GridView. Dès lors, la seule façon de récupérer la DataView est
dans l'évènement RowDataBound de ta GridView:

bool isFirstTime = true;
...
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (this.isFirstTime)
{
System.Data.DataView dv = (e.Row.DataItem as
System.Data.DataRowView).DataView;
int nbRows = dv.Count;
}
}
}

En espérant que ça répondra à ta question,
Amicalement,

Jérôme Noirfalise
---------------------
MCSD .NET
.NET Consultant @ AUSY Luxembourg
http://www.jnoirfal.be


"Cyril" a écrit :

Bonjour

J'ai une gridview reliée à un SqlDataSource.

J'aimerai connaître le nombre d'enregistrements remontés par ma
requête.

J'ai utilisé l'évènement OnSelected de mon datasource qui a comme
argument un SqlDataSourceStatusEventArgs qui me retourne AffectedRows
(nombre de lignes affectées par la requête). Donc là c'est tout bon.

Le pb est que j'applique un filtre sur mon datasource et même si je
n'ai plus qu'une dizaine d'enregistrements qui sont remontés par la
requête, mon AffectedRows est toujours égal au nombre d'enregistrements
total.

Qq'un a-t-il une solution ?

Merci

Cyril







Publicité
Poster une réponse
Anonyme