Lettura e calcolo MAX da database access

lunedì 07 settembre 2009 - 08.53

frenk17 Profilo | Junior Member

Ciao a tutti..
avrei una domanda che probabilmente per la quasi totalità di voi sarà banale ma non riesco proprio a capire dove commetto l'errore.
Ho la necessità di calcolare il massimo della colonna "numritiro" di un database access..

chiamata funzione:
Dim dt As DataTable = LeggiDB("select max (numritiro) from ritiri")



funzione:
Public Function LeggiDB(ByVal sql As String) As DataTable
PercorsoDB = DBWrite.Txt_PercorsoDB.Text
Dim connStr As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & PercorsoDB & ";"
Dim dt As New DataTable
Dim conn As New OleDbConnection(connStr)

Try
conn.Open()
Dim adapter As New OleDbDataAdapter(sql, conn)

adapter.Fill(dt)

conn.Close()

Catch ex As Exception

End Try

Return dt
End Function


Spero possiate darmi una mano..
grazie in anticipo del supporto

alx_81 Profilo | Guru

>Ciao a tutti..
Ciao

Ma che errore ottieni?
Sinceramente per un solo valore, ti consiglio di usare il metodo ExecuteScalar:
http://msdn.microsoft.com/it-it/library/system.data.oledb.oledbcommand.executescalar.aspx

--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

frenk17 Profilo | Junior Member

ma a dire il vero non ottengo un errore però selezionando la variabile "dt" e cliccando sul visualizza(lente d' ingrandimento) ottengo il valore corretto.. tuttavia non riesco a estrarlo da "dt" e quindi utilizzarlo...
mi rendo conto di non essere stato molto chiaro... allego un immagine che spero possa aiutarti a capire il mio problema..

718x401 34Kb


alx_81 Profilo | Guru

>mi rendo conto di non essere stato molto chiaro... allego un
>immagine che spero possa aiutarti a capire il mio problema..
ok, ho capito..
allora devi accedere alla riga 0 del dt e devi usare la select con un alias:

Dim sql as string = "SELECT MAX(campo) as Massimo FROM tabella" Dim valore as int = dt.Rows(0)("Massimo")
--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

frenk17 Profilo | Junior Member

ok perfetto funziona!
grazie per il supporto...
alla prossima...
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5