Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[ASP 2.0] Connaitre le nombre d'enregistrements

4 réponses
Avatar
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

4 réponses

Avatar
Daniel
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" a écrit dans le message de news:

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




Avatar
Laurent Jordi
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" a écrit dans le message de
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" a écrit dans le message de news:

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








Avatar
Jérôme Noirfalise
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





Avatar
Cyril
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