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:
dove a PrintLn puoi sostituire qualunque istruzione che stampi il risultatocodice: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

Rispondi quotando