venerdì 25 settembre 2026

C# ADO.NET Verificare se in un record di un DataTable sono presenti valori

In questo tip di programmazione C# con ADO.NET vediamo come verificare se, all'interno di un record di un DataTable, sono presenti determinati valori numerici.
In particolare, supponiamo di avere alcune colonne di tipo int e di voler verificare se, per un determinato record, tali colonne contengono un valore diverso da 0.

Di seguito un esempio:

C#

        DataTable dttDatiGestione = new DataTable();

         dttDatiGestione.Columns.Add(new DataColumn("ID", typeof(int)));

        dttDatiGestione.Columns.Add(new DataColumn("Numero", typeof(int)));

        dttDatiGestione.Columns.Add(new DataColumn("Numero2", typeof(int)));

         DataRow rigaNuova = dttDatiGestione.NewRow();

        rigaNuova[0] = 1;

        rigaNuova[1] = 4;

        rigaNuova[2] = 8;

        dttDatiGestione.Rows.Add(rigaNuova);

        bool trovatoElemento = dttDatiGestione.AsEnumerable()

.Any(p =>

    p.Field<int>("ID") == 1 &&

    (p.Field<int?>("Numero") ?? 0) != 0 &&

    (p.Field<int?>("Numero2") ?? 0) != 0



In questo caso, Any() restituisce true se esiste almeno una riga in cui:

la colonna ID contiene il valore 1;
la colonna Numero contiene un valore diverso da 0;
la colonna Numero2 contiene un valore diverso da 0.

L'utilizzo di Field<int?>() consente inoltre di gestire eventuali valori DBNull. Grazie all'operatore ?? 0, un eventuale valore NULL viene considerato equivalente a 0.

Nel nostro esempio, poiché Numero vale 4 e Numero2 vale 8, la variabile trovatoElemento assumerà il valore true.

Nessun commento: