2008-11-21 6 views
1

J'ai un DataGridView que je souhaite interroger à l'aide de Linq (C# WinForm). Je veux "compter" les lignes où un certain critère est rencontré. Par exemple,Comment faire pour interroger un DataGridView à l'aide de Linq

variable1 = "count rows where ColumnBoxAge > 3 || < 5" 

label1.Text = variable1 

Comment faire cela dans C# WinForm en utilisant Linq?

+0

Qu'avez-vous en tant que DataSource dans votre DataGridView? –

+0

J'ai un ensemble de données à partir d'un SQL Server stocké proc – MarlonRibunal

Répondre

2

Je ne sais pas si cela pourrait fonctionner mais vous pouvez essayer ceci;

dataSet.Tables[0].AsEnumerable().Where(c => c.Field<int>("ageColumn") > 3 || 
    c.Field<int>("ageColumn") < 5).Count(); 

Modifier: où au lieu de Sélectionner.

+0

il compte toutes les lignes dans le dgv ... pas ce que je veux. Devrait être "compter les lignes où BoxAge est entre 3 et 5" ... – MarlonRibunal

+0

Maintenant que ça marche ... (Voir Modifier) ​​ – MarlonRibunal

0

Votre requête est donc fausse! Essayez de mettre '& &' au lieu de '||';

dataSet.Tables[0].AsEnumerable().Where(c => c.Field<int>("ageColumn") > 3 && 
    c.Field<int>("ageColumn") < 5).Count(); 

Modifier: où au lieu de Sélectionner.

0

@yapiskan

dataSet.Tables[0].AsEnumerable().Where(c => c.Field<int>("ageColumn") > 3 && 
    c.Field<int>("ageColumn") < 5).Count(); 

.Lorsque au lieu de .Choisir

Merci beaucoup! J'apprécie ton aide.

+0

Oups, c'est sûr! –

Questions connexes