Nombre d'enregistrements retournés par un Sqldatasource

Signaler
Messages postés
9
Date d'inscription
dimanche 22 décembre 2002
Statut
Membre
Dernière intervention
27 janvier 2007
-
tikrimi
Messages postés
192
Date d'inscription
dimanche 5 janvier 2003
Statut
Membre
Dernière intervention
9 mars 2007
-
Bonjour,

Je développe actuellement ma première application en ASP.net, et je fais face a un petit problème. J'utilise SQL Serveur, et mon code est en  C#.

A l'aide d'un SqlDataSource, je rempli une DropDownList. J'aimerais pouvoir connaitre le nombre d'enregistrements que ma requête SQL renvoie, je n'ai pas trouvé de méthode permettant de le faire sur le SqlDatasource, et la fonction MyDDL.Items.count(), ne semble pas fonctionner dans mon cas...

Toujours pouur résoudre mon pb, comment puis-je effectuer à l'aide d'un SQLDataSource une requete SQL du type : SELECT Count(*) AS resultat from Table et récupéré la valeur de mon champ résultat, mais sans l'afficher (j'en ai besoin juste pour des tests!)?

Comment puis-je faire svp?

Je vous remercie d'avance pour votre réponse.

6 réponses

Messages postés
6827
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
17
Bonsoir,

tu peux classiquement faire un nouveau SqlCommand, SqlConnection etc...

using(SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["TaConnection"].ConnectionString))
using(SqlCommand command = new SqlCommand("select count * from T_toto", conn))
{
   conn.open();
   int c = (int)command.ExecuteScalar(); 
   conn.close();
}

<hr />Cyril - MVS - MCP
Messages postés
9
Date d'inscription
dimanche 22 décembre 2002
Statut
Membre
Dernière intervention
27 janvier 2007

Merci bcp! j'ai réussi a faire ce que je voulais avec ca!
Mais il n''existe donc pas une méthode permettant d'utiliser directement ma requete du sqldatasource?
Le SqlDataSource s'utilise uniquement pour lier des données à un controle?

Merci de m'éclaircir si vous le pouvez!
Messages postés
6827
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
17
Le SQLDataSource sert principalement pour le binding d'un contrôle, il est peut etre possible de récuperer des infos dans le code behind mais je n'utilise que très rarement cet objet donc je ne peux pas te dire.

La solution la plus propre reste l'utilisation d'un ObjectDataSource pour effectuer ton binding et d'utiliser directement l'objet dans le code-behind.

<hr />Cyril - MVS - MCP
Messages postés
192
Date d'inscription
dimanche 5 janvier 2003
Statut
Membre
Dernière intervention
9 mars 2007
1
Hello à tous les deux,

J'arrive un peu après la bataille, mais avec quelque chose de propre.
Un controle SqlDataSource a un événement qui s'appelle "Selected" dans lequel il passe un "SqlDataSourceStatusEventArgs" qui a une propriété qui s'appelle "AffectedRows" :

Protected
Sub SqlDataSource1_Selected(
ByVal sender
As
Object,
ByVal e
As System.Web.UI.WebControls.SqlDataSourceStatusEventArgs)
Handles SqlDataSource1.SelectedResponse.Write(e.AffectedRows)

End
SubBon code,

TiK - MCSD.NET
http://www.blogatik.com/
http://www.objectif-services.com/
Messages postés
9
Date d'inscription
dimanche 22 décembre 2002
Statut
Membre
Dernière intervention
27 janvier 2007

Merci Tikrimi,

Mais pourrais tu me donner la syntaxe en C#, car je ne vois pas ce qu'est le Handles !

Merci:!
Messages postés
192
Date d'inscription
dimanche 5 janvier 2003
Statut
Membre
Dernière intervention
9 mars 2007
1
Ben logiquement, tu as juste à doublecliquer sur ton datasource puis à choisir le bon événement.

TiK - MCSD.NET
http://www.blogatik.com/
http://www.objectif-services.com/