Usuário com melhor resposta
Erro usando o SELECT COUNT (*)

Pergunta
-
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.
Essa 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 ajudar? Obrigado !terça-feira, 1 de fevereiro de 2011 00:05
Respostas
-
Olá
Como você precisa retornar apenas um único valor da consulta, não precisa utilizar o OleDb.OleDbDataReader, use apenas o Command, desta forma:
dim totalFuncionarios As Integer
...
totalFuncionarios = dados.ExecuteScalar
...Att.
Lucas- Sugerido como Resposta Rodrigo Sória terça-feira, 1 de fevereiro de 2011 05:45
- Marcado como Resposta Eder CostaModerator quinta-feira, 3 de fevereiro de 2011 17:16
terça-feira, 1 de fevereiro de 2011 02:10 -
Ou então retornar resp(0)
Ex.:
resp = dados.ExecuteReader Return resp(0)
Att. Osni- Marcado como Resposta Eder CostaModerator quinta-feira, 3 de fevereiro de 2011 17:16
terça-feira, 1 de fevereiro de 2011 12:33
Todas as Respostas
-
Olá
Como você precisa retornar apenas um único valor da consulta, não precisa utilizar o OleDb.OleDbDataReader, use apenas o Command, desta forma:
dim totalFuncionarios As Integer
...
totalFuncionarios = dados.ExecuteScalar
...Att.
Lucas- Sugerido como Resposta Rodrigo Sória terça-feira, 1 de fevereiro de 2011 05:45
- Marcado como Resposta Eder CostaModerator quinta-feira, 3 de fevereiro de 2011 17:16
terça-feira, 1 de fevereiro de 2011 02:10 -
Ou então retornar resp(0)
Ex.:
resp = dados.ExecuteReader Return resp(0)
Att. Osni- Marcado como Resposta Eder CostaModerator quinta-feira, 3 de fevereiro de 2011 17:16
terça-feira, 1 de fevereiro de 2011 12:33