Quote Originariamente inviata da pietro09 Visualizza il messaggio
ti faccio un esempio

per prima cosa un metodo che restituisce il risultato di aggregazione di una query
codice:
'-------------------------------------------------------------------------------------------------
'Restituisce il risultato di una funzione di aggregazione di una istruzione sql
'Esegue la query e restituisce la prima colonna della prima riga nel gruppo 
'di risultati restituito dalla query. 
'Le colonne o le righe aggiuntive vengono ignorate
'
'restituisce Nothing se non trova valore
'restituisce System.DBNull.Value se trova valore null
'restituisce object se trova valore
'-------------------------------------------------------------------------------------------------
Public Function RisultatoAggregazioneSQL(Connessione As OleDbConnection, stringaSQL As String) As Object
    Dim Comando As OleDbCommand

    Try
        Comando = New OleDbCommand(stringaSQL, Connessione)

        RisultatoAggregazioneSQL = Comando.ExecuteScalar()

    Catch er As Exception
        Throw
    Finally

    End Try

End Function

poi un metodo che restituisce 0 se il risultato della query è dbnull.value
codice:
'--------------------------------------------------------------
'Convert DBNull in 0
'--------------------------------------------------------------
Public Function NullToZero(v As Object) As Object
    If v Is DBNull.Value Then
        Return 0
    Else
        Return v
    End If

End Function


Poi il metodo che fa le interrogazioni:
codice:
Option Strict On
Imports o = System.Data.OleDb


Partial Class prove_a
    Inherits System.Web.UI.Page


    Protected Sub Button1_Click(sender As Object, e As System.EventArgs) Handles Button1.Click
        
Using con As New o.OleDbConnection(StringaConnessione)
            con.Open()

            'conteggio dei record
            Dim v1 As Integer = CInt(RisultatoAggregazioneSQL(con, "select count(*) from campi"))
            PrintLn(v1)

            'conteggio dei record con condizione: dà 0
            Dim v2 As Integer = CInt(RisultatoAggregazioneSQL(con, "select count(*) from campi where 1=0"))
            PrintLn(v2)

            'somma del campo [double] con condizione
            Dim v3 As Double = CDbl(NullToZero(RisultatoAggregazioneSQL(con, "select sum([double]) from campi where 1=1")))
            PrintLn(v3)

            'somma del campo [double] con condizione: dà 0
            Dim v4 As Double = CDbl(NullToZero(RisultatoAggregazioneSQL(con, "select sum([double]) from campi where 1=0")))
            PrintLn(v4)
        End Using

    End Sub
dove a PrintLn puoi sostituire qualunque istruzione che stampi il risultato
Ti ringrazio infinitamente per la pazienza e la disponibilità mostrata.
Sono proprio nuovo di VB.NET (la mia firma ....) e quindi poco esperiente.
Mi pare di capire da questa istruzione:


Partial Class prove_a
Inherits System.Web.UI.Page


che si parla di WEB.

In effetti e me ne scuso, non ho specificato nel titolo, che questa operazione va fatta su un archivio MDB locale.
Non so, quindi, se il codice puo' essere utilizzato o meno (appena posso provero').

Grazie, comunque.