Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

TheOne

Ajuda em obter valor da expressão MAX de SQL

Recommended Posts

TheOne

Boas pessoal, desta vez tenho um problema num programa que estou a fazer para o meu pai. Só dei umas luzes de SQL no secundário e não foi nada de especial, mas eu pretendo calcular o valor máximo duma coluna:

Public Shared Sub getMax()

        Try
            Dim con As OleDbConnection = New OleDbConnection(StaticVars.DBCon)
            Dim cmd As New OleDbCommand

            cmd.CommandType = CommandType.Text
            cmd.Connection = con
            cmd.CommandText = "SELECT MAX(ID) FROM Base"
            con.Open()
            cmd.ExecuteNonQuery()
            con.Close()

        Catch ex As Exception
            Throw ex

        End Try

    End Sub

O problema é, como é que eu guardo o valor de MAX(ID) numa variável para depois usar?

Obrigado pessoal

Share this post


Link to post
Share on other sites
anolsi

Public Shared Sub getMax()

        Try
            Dim con As OleDbConnection = New OleDbConnection(StaticVars.DBCon)
            Dim cmd As New OleDbCommand
            Dim aux as Integer = 0

            cmd.CommandType = CommandType.Text
            cmd.Connection = con
            cmd.CommandText = "SELECT MAX(ID) AS maximo FROM Base"
            con.Open()
            Dim reader As SqlDataReader = cmd.ExecuteReader()
            If reader.HasRows Then
                 reader.Read()
                 aux = reader.Item("maximo")
            End If
            con.Close()

        Catch ex As Exception
            Throw ex

        End Try
        return aux
    End Sub

Acho que é isto que queres.

Para perceberes melhor vê isto.


"Nós somos o que fazemos repetidamente, a excelência não é um feito, e sim, um hábito."
Não respondo a questões por PM que possam ser colocadas no fórum!

Share this post


Link to post
Share on other sites
jpaulino

[Acho que é isto que queres.

Para perceberes melhor vê isto.

O exemplo do anolsi deve funcionar bem, mas se queres apenas 1 valor, podes usar um ExecuteScalar().  Podes adaptar ou procurar exemplos no link que ele te mostrou.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.