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

oliveira99

Seguinte e Anterior Mysql + Vb

5 mensagens neste tópico

Boas!

Tou com uma dúvida em relação ao botoes seguinte e anterior!! Eu o primeiro e o ultimo consegui fazer agora o anterior e o seguinte é que estou com dúvidas! Se o id_cliente fosse sempre seguido [1,2,3,4,5] era fácil mas como  id´s podem não estar seguidos, faz com que de erro!

O código que utilizo para o primeiro é o seguinte:

Private Sub btn_primeiro_Click() Handles btn_primeiro.Click
Dim a As Integer

        btn_primeiro.Enabled = False
        btn_anterior.Enabled = False
        btn_ultimo.Enabled = True
        btn_seguinte.Enabled = True


        myCommand.Connection = conn
        myCommand.CommandText = "SELECT min(id_clientes) FROM clientes"
        conn.Open()
        a = myCommand.ExecuteScalar
        conn.Close()
        txt_cod.Text = a
End Sub

Private Sub txt_cod_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txt_cod.TextChanged
        Dim re As MySqlDataReader

        myCommand.Connection = conn
        myCommand.CommandText = "Select * from clientes where id_clientes='" & txt_cod.Text & "'"

        conn.Open()

        re = myCommand.ExecuteReader
        re.Read()

        If re.HasRows Then
            txt_contribuinte.Text = re("contribuinte")
            txt_cpostal.Text = re("cpostal")
            txt_cpostall.Text = re("cpostall")
            txt_email.Text = re("email")
            txt_localidade.Text = re("localidade")
            txt_morada.Text = re("morada")
            txt_nome.Text = re("nome")
            txt_telefone.Text = re("fixo")
            txt_telem.Text = re("telemovel")
            cmb_condpag.Text = re("cond_pagam")
            cmb_formapag.Text = re("forma_pagam")
            cmb_moeda.Text = re("moeda")
        Else
            txt_contribuinte.Text = 0
            txt_cpostal.Text = "0000"
            txt_cpostall.Text = "000"
            txt_email.Text = ""
            txt_localidade.Text = ""
            txt_morada.Text = ""
            txt_nome.Text = "Uilizador não existente"
            txt_telefone.Text = 0
            txt_telem.Text = 0
            cmb_condpag.Text = ""
            cmb_formapag.Text = ""
            cmb_moeda.Text = "EUR"
        End If

        conn.Close()
    End Sub

O que eu fiz foi o seguinte, tem uma textbox na form que contem o id do cliente e caso o id mude ele vai á base de dados buscar os dados correspondentes ao id que se encontra na textbox.

Agora  queria saber como faço os botoes seguinte e anterior!

Agradeço a vossa ajuda!

cumps,

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Podes utilizar o TOP

Select top 10 * from ...

e vêm as 10 primeiras linhas, podes ir fazendo assim de acordo com o indice q necessitas.

para o 2 fazes select top 20 * from ...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Podes utilizar o TOP

Select top 10 * from ...

e vêm as 10 primeiras linhas, podes ir fazendo assim de acordo com o indice q necessitas.

para o 2 fazes select top 20 * from ...

Não percebi muito bem.... ou explique-me mal o que eu queria fazer...

Por ex: no Mysql Query Browser executei isto:

SELECT TOP 10 *  FROM clientes

Mas indica que tem um erro!!

Podes explicar melhor como faço os botoes seguinte e anterior?

Obrigado!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Por acaso não reparei q era mySql, o TOP é uma expressão de sql server.

De qualquer maneira deve haver equivalente. Em Oracle por exemplo tens o rownum < 10.

Mas a ideia é:

int linhasAobter = numeroLinhas * indice;

depois Select TOP @linhasAobter from ..., com a sintaxe correcta para mysql, e fazendo do linhasAobter um parametro

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Por acaso não reparei q era mySql, o TOP é uma expressão de sql server.

De qualquer maneira deve haver equivalente. Em Oracle por exemplo tens o rownum < 10.

Mas a ideia é:

int linhasAobter = numeroLinhas * indice;

depois Select TOP @linhasAobter from ..., com a sintaxe correcta para mysql, e fazendo do linhasAobter um parametro

Nao haverá forma mais simples de o fazer?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora