2009-05-19 4 views
5

En supposant que j'ai une colonne appelée A et je veux vérifier si A est nul ou blanc, quelle est la bonne façon de vérifier cela à l'aide de RowFilter DataView:Comment puis-je vérifier en blanc dans DataView.RowFilter

DataTable dt = GetData(); 

DataView dv = new DataView(dt); 

dv.RowFilter = "A IS NOT NULL OR A IS NOT ''"; 

Ce qui précède ne semble pas fonctionner.

Répondre

11

Êtes-vous lié à .net < 3.5? Sinon, vous pouvez utiliser linq pour vérifier l'état d'une colonne.

Sinon, il y a une fonction Isnull(,) comme dans T-SQL:

dv.RowFilter = "Isnull(a,'') <> ''"; 
6

Je suppose que vous devez récupérer tous les enregistrements dont la valeur dans la colonne A est ni nul, ni « »

Le correct expr est:

dv.RowFilter = "A IS NOT NULL AND A <> ''"; 

Et pour récupérer la boucle d'enregistrements filtrés sur dv.ToTable() comme ceci:

foreach (DataRow dr in dv.ToTable().Rows) 
    Console.WriteLine(dr["A"]); 

Cela devrait fonctionner ... acclamations !!

5

Vous pouvez ajouter

dv.RowFilter = "CONVERT(Isnull(a,''), System.String) <> ''"

si une colonne est de type de numéro de données isNull (a, '') retournerait nombre. Eval du numéro <> 0 lancerait l'exception.

+1

+1 Votre réponse m'a aidé à résoudre la condition d'exception. –

Questions connexes