2009-05-19 18 views
5

Supponendo che ho una colonna chiamata A e voglio verificare se A è nullo o vuoto, qual è il modo corretto per verificare la presenza di questo utilizzo RowFilter del DataView:Come faccio a verificare la presenza di vuoto nel DataView.RowFilter

DataTable dt = GetData(); 

DataView dv = new DataView(dt); 

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

Quanto sopra non sembra funzionare.

risposta

11

Sei legato a .net < 3.5? In caso contrario, è possibile utilizzare linq per verificare lo stato di una colonna.

altrimenti c'è una funzione Isnull(,) come in T-SQL:

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

Io parto dal presupposto è necessario recuperare tutti i record in cui il valore nella colonna A non è né nulla né ''

Il corretta espr è:

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

E per recuperare il ciclo record filtrata su dv.ToTable() in questo modo:

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

Questo dovrebbe funzionare ... saluti !!

5

È possibile aggiungere

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

se una colonna ha tipo di dati di numero come ISNULL (a, '') il numero sarebbe tornato. Eval of number <> 0 genererebbe l'eccezione.

+1

+1 La risposta mi ha aiutato a risolvere la condizione di eccezione. –

Problemi correlati