Problemas como COUNT no Visual Basic 2010

4 respostas
FernandoFerreira

Olá pessoal,
Estou com um problema no COUNT no vb. Quero apresentar em um label o total de funcionários. Porém, o resultado aparece sempre -1.
Criei uma função em uma classe e chamei essa função no label.
PEssa função é a seguinte:

Public Function TotFunc() As Double
Dim dados As New OleDb.OleDbCommand
Dim resp As OleDb.OleDbDataReader
Dim tot As Integer = 0
Try
Conectar()

With dados
            .CommandText = "SELECT COUNT(*) FROM tb_Funcionarios"
            .CommandTimeout = 10000
            .CommandType = CommandType.Text
            .Connection = objCon
        End With

        Try
            resp = dados.ExecuteReader

            Return True
        Catch ex As Exception
            MessageBox.Show("Erro ao procurar o total de funcionários.", "", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Return False
        Finally
            Desconectar()
        End Try

    Catch ex As Exception
        MessageBox.Show("Ocorreu um erro na conexão.", "", MessageBoxButtons.OK, MessageBoxIcon.Error)
        Return False
    End Try
End Function

Alguém poderia me dar um help? Obrigado !

4 Respostas

ViniGodoy

E onde você está retornando o total encontrado?

E por que você está retornando booleans numa função que é double?

Aliás, se você retorna um contador, por que usa Double e não Integer?

ViniGodoy

Antes que eu esqueça. Quando for postar código no GUJ, por favor, siga essas dicas:
http://www.guj.com.br/java/50115-voce-e-novo-no-guj-vai-criar-um-topico-e-colar-seu-codigo-fonte-leia-aqui-antes-por-favor

Ele formata para java, mas pelo menos deixará seu código indentado. Senão fica difícil de entendermos.

A

Fora todas esses recomendações do ViniGodoy, o VB vai converter automaticamente um boolean (True ou False) para double (-1 ou 0).

Se a função retorna -1, deve estar caindo no return True.

Revise a função conforme as recomendações acima.

FernandoFerreira

Obrigado pessoal, graças as dicas de vocês consegui resolver o problema. Muito obrigado mesmo !

Criado 31 de janeiro de 2011
Ultima resposta 31 de jan. de 2011
Respostas 4
Participantes 3