C# - Limitation du nombre d'enregistrements dans un datagrid
Michel0911
Messages postés17Date d'inscriptionjeudi 16 octobre 2003StatutMembreDernière intervention 3 février 2004
-
28 nov. 2003 à 10:35
Michel0911
Messages postés17Date d'inscriptionjeudi 16 octobre 2003StatutMembreDernière intervention 3 février 2004
-
5 déc. 2003 à 19:17
Bonjour,
Comment faire pour limiter le nombre d'enregistrements à l'affichage dans un datagrid ?
Par exemple, mon critère de selection dans un form de recherche est trop vague. La requête me renvoie 100 records. Je veux que si le nombre de records dépasse 50 une message box s'affiche pour demander la modification du critère de recherche.
Merci d'avance
Michel
A voir également:
C# - Limitation du nombre d'enregistrements dans un datagrid
Michel0911
Messages postés17Date d'inscriptionjeudi 16 octobre 2003StatutMembreDernière intervention 3 février 2004 28 nov. 2003 à 12:52
if (textBoxRecNom.Text != "")
{
dataSetRec.Clear();
oleDbDataAdapter2.SelectCommand.CommandText= "SELECT NomFamille, Prénom, Poste,RéfEmployé, TélProfessionnel, Titre FROM Employés WHERE NomFamille like '" + textBoxRecNom.Text + "%'";
Michel0911
Messages postés17Date d'inscriptionjeudi 16 octobre 2003StatutMembreDernière intervention 3 février 2004 1 déc. 2003 à 15:11
En fait, je ne cherche pas à limiter ma requête aux 10 premier records. Mais si le résultat de ma requête dépasse , par exemple, 100 records, j'aimerais afficher un messageBox " Trop de d'enregistrement. Affiner votre sélection". Je ne sais pas comment récupérer le nombre d'enregistrement pour pouvoir afficher le message et ne pas déclencher l'action Fill.
J'espère que c'est assez clair ...
Merci
Michel
Vous n’avez pas trouvé la réponse que vous recherchez ?
Michel0911
Messages postés17Date d'inscriptionjeudi 16 octobre 2003StatutMembreDernière intervention 3 février 2004 4 déc. 2003 à 19:01
Si j'utilise ton instruction avant d'affecter le datagrid avec l'instruction Fill, le rowcount est à zéro. Sais tu comment faire pour lancer la requête sans affecter le datagrid (Fill) de manière à ce que je puisse utiliser ton instruction après ?
stegars
Messages postés24Date d'inscriptionjeudi 13 mars 2003StatutMembreDernière intervention25 février 20042 4 déc. 2003 à 20:05
La méthode Fill(), appartient a un DataAdapter et non au Datagrid et c'est pour remplir ton dataset qui lui remplira to datagrid.
Alors tu utilise la méthode Fill() pour remplir ton dataset et comme tu est déconnecter de la database, ton resultset est en mémoire et le count est disponible.
pour remplir ton datagrid par la suite tu utilise:
datagrid.DataSource = dataSetRec.tables[0].DefaultView
(Virifie la syntax exact...)
Michel0911
Messages postés17Date d'inscriptionjeudi 16 octobre 2003StatutMembreDernière intervention 3 février 2004 5 déc. 2003 à 11:47
Désolé mais je n'ai pas compris ton explication. Voilà ce que je fais:
if (textBoxRecNom.Text != "")
{
dataSetRec.Clear();
oleDbDataAdapter2.SelectCommand.CommandText = "SELECT NomFamille, Prénom, Poste,RéfEmployé, TélProfessionnel, Titre FROM Employés WHERE NomFamille like '" + textBoxRecNom.Text + "%'";
stegars
Messages postés24Date d'inscriptionjeudi 13 mars 2003StatutMembreDernière intervention25 février 20042 5 déc. 2003 à 13:16
Désolé, je crois que le titre de ce poste protait a confusion!
Selon ce que je vois avec ton code, ce n'est pas un Datagrid que tu veux limiter mais ton Dataset et donc ta requête elle même, étant donné que tu mais la condition avant la methode Fill du DataAdapter.
Dans ce cas je ne vois qu'une autres solution qui est de faire un "select Count(*) FROM Employés WHERE NomFamille like '" + textBoxRecNom.Text + "%'" avant ta vrai requête. Mais cela te force a aller sur la base de donnée deux fois(une pour le count et une autre pour le résultats.).
Dans ce cas, tu peux utilisé une OleDBCommand et le méthode ExecuteScalar qui retrouve la première valeur de la requête.
Michel0911
Messages postés17Date d'inscriptionjeudi 16 octobre 2003StatutMembreDernière intervention 3 février 2004 5 déc. 2003 à 19:17
C'est ce que j'avais essayé de faire : une requête avec un select count(*) pour récupérer le comptage avant de faire la requête select. Mais je ne sais pas(désolé je débute en c#) comment récupérer le résultat cette première requête sans évidemment l'affecter dans le datagrid.