none
Porque? RRS feed

  • Pergunta

  • Boa Tarde!

    Pessoal,

    Eu tenho o código, conforme imagem abaixo e está retornando 1, mas a tabela está vazia, alguém sabe porque?

    O código está em uma tela de login, mas é apenas um teste que eu fiz.

    quarta-feira, 18 de maio de 2022 19:31

Respostas

  • Olá,

    Você está executando uma função agregada, que no caso é o count. Sempre será retornado uma linha, até mesmo porque é executado uma soma e exibido o resultado desta soma.

    Use o SqlReader é leia o campo de índice 0: Convert.ToInt32(reader[0])

     

    --
    Espero que isso te ajude. Se te ajudou, marque como resposta para fechar a thread e ajudar outros usuários.

    Abrs,
    Reginaldo Villela.

    quarta-feira, 18 de maio de 2022 19:48
  • Olá,

    Segue o link sobre o count em MySQL

    https://dev.mysql.com/doc/refman/8.0/en/counting-rows.html

    --
    Espero que isso te ajude. Se te ajudou, marque como resposta para fechar a thread e ajudar outros usuários.

    Abrs,
    Reginaldo Villela.

    quarta-feira, 18 de maio de 2022 19:51
  • Bom Dia!

    Ou eu posso também colocar na condição se for <= 1

    • Marcado como Resposta Rodrigo Rx3Info quinta-feira, 19 de maio de 2022 19:39
    quinta-feira, 19 de maio de 2022 11:32
  • Olá,

    Não, porque sempre irá retornar apenas uma linha usando o count, independente do total de registros.

    Inclusive você pode nomear o calculo para ficar mais fácil de usar no reader, pois pode referenciar pelo nome e não pela posição da coluna.

     

    --
    Espero que isso te ajude. Se te ajudou, não se esqueça de marcar como resposta a solução apresentada para, fechar a Thread e ajudar outros usuários.

    Abrs,
    Reginaldo Villela

    quinta-feira, 19 de maio de 2022 11:45
  • Bom Dia!

    Reginaldo,

    Desta forma que me passou deu certo, é isso mesmo que eu queria, obrigado pela ajuda.

        Public Sub consTabFios()
            Try
                cnDBLady.Open()
                Dim strConsTabFios As String
                strConsTabFios = "select count(*) AS qtdeRegistros from ft_fios"
                Dim cmdConsTabFios As MySqlCommand = New MySqlCommand(strConsTabFios, cnDBLady)
                drConsTabFios = cmdConsTabFios.ExecuteReader
                While drConsTabFios.Read()
                    Registros = drConsTabFios("qtdeRegistros").ToString
                End While

                cnDBLady.Close()
            Catch ex As Exception
                cnDBLady.Close()
            End Try
        End Sub

    • Marcado como Resposta Rodrigo Rx3Info quinta-feira, 19 de maio de 2022 19:39
    quinta-feira, 19 de maio de 2022 13:19
  • Que bom que deu certo!

     

    --
    Se te ajudou, não se esqueça de marcar como resposta a solução apresentada para, fechar a Thread e ajudar outros usuários.

    Abrs,
    Reginaldo Villela

    • Marcado como Resposta Rodrigo Rx3Info quinta-feira, 19 de maio de 2022 19:39
    quinta-feira, 19 de maio de 2022 13:28

Todas as Respostas

  • Olá,

    Você está executando uma função agregada, que no caso é o count. Sempre será retornado uma linha, até mesmo porque é executado uma soma e exibido o resultado desta soma.

    Use o SqlReader é leia o campo de índice 0: Convert.ToInt32(reader[0])

     

    --
    Espero que isso te ajude. Se te ajudou, marque como resposta para fechar a thread e ajudar outros usuários.

    Abrs,
    Reginaldo Villela.

    quarta-feira, 18 de maio de 2022 19:48
  • Olá,

    Segue o link sobre o count em MySQL

    https://dev.mysql.com/doc/refman/8.0/en/counting-rows.html

    --
    Espero que isso te ajude. Se te ajudou, marque como resposta para fechar a thread e ajudar outros usuários.

    Abrs,
    Reginaldo Villela.

    quarta-feira, 18 de maio de 2022 19:51
  • Bom Dia!

    Ou eu posso também colocar na condição se for <= 1

    • Marcado como Resposta Rodrigo Rx3Info quinta-feira, 19 de maio de 2022 19:39
    quinta-feira, 19 de maio de 2022 11:32
  • Olá,

    Não, porque sempre irá retornar apenas uma linha usando o count, independente do total de registros.

    Inclusive você pode nomear o calculo para ficar mais fácil de usar no reader, pois pode referenciar pelo nome e não pela posição da coluna.

     

    --
    Espero que isso te ajude. Se te ajudou, não se esqueça de marcar como resposta a solução apresentada para, fechar a Thread e ajudar outros usuários.

    Abrs,
    Reginaldo Villela

    quinta-feira, 19 de maio de 2022 11:45
  • Bom Dia!

    Reginaldo,

    Desta forma que me passou deu certo, é isso mesmo que eu queria, obrigado pela ajuda.

        Public Sub consTabFios()
            Try
                cnDBLady.Open()
                Dim strConsTabFios As String
                strConsTabFios = "select count(*) AS qtdeRegistros from ft_fios"
                Dim cmdConsTabFios As MySqlCommand = New MySqlCommand(strConsTabFios, cnDBLady)
                drConsTabFios = cmdConsTabFios.ExecuteReader
                While drConsTabFios.Read()
                    Registros = drConsTabFios("qtdeRegistros").ToString
                End While

                cnDBLady.Close()
            Catch ex As Exception
                cnDBLady.Close()
            End Try
        End Sub

    • Marcado como Resposta Rodrigo Rx3Info quinta-feira, 19 de maio de 2022 19:39
    quinta-feira, 19 de maio de 2022 13:19
  • Que bom que deu certo!

     

    --
    Se te ajudou, não se esqueça de marcar como resposta a solução apresentada para, fechar a Thread e ajudar outros usuários.

    Abrs,
    Reginaldo Villela

    • Marcado como Resposta Rodrigo Rx3Info quinta-feira, 19 de maio de 2022 19:39
    quinta-feira, 19 de maio de 2022 13:28