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