Как сделать пагинацию следующей и предыдущей кнопки в VB. NET для базы данных Acces - PullRequest
0 голосов
/ 17 апреля 2020

В настоящее время я использую FlowLayoutPanel1 и UserControl1.vb, чтобы показать мне данные из базы данных в Access.

Мне нужно 10 результатов, чтобы отображаться каждый раз, когда я нажимаю следующую или предыдущую кнопку.

Это мой код:

Dim CLIENTES_GUARDADOS () As pedidos

Public Sub LISTAS_CLIENTES()
    COMANDOS.Parameters.Clear()
    CONECTAR.Close()
    CONECTAR.Open()
    COMANDOS.CommandText = "SELECT Count(PEDIDOS_CLIENTES.ID) AS Total  FROM PEDIDOS_CLIENTES"

    LEER = COMANDOS.ExecuteReader
    LEER.Read()

    Dim count As Integer = LEER(0)

    ReDim CLIENTES_GUARDADOS(count)

    CONECTAR.Close()
    CONECTAR.Open()
    COMANDOS.CommandText = "SELECT TOP 100 * FROM PEDIDOS_CLIENTES  Order By ID  DESC"

    LEER = COMANDOS.ExecuteReader

    FlowLayoutPanel5.Controls.Clear()

    Dim i As Integer = 0

    While LEER.Read() = True
        CLIENTES_GUARDADOS(i) = New pedidos()
        CLIENTES_GUARDADOS(i).ID = LEER("ID")
        CLIENTES_GUARDADOS(i).nombre.Text = LEER("NOMBRE")
        CLIENTES_GUARDADOS(i).NOMBRE_001 = LEER("NOMBRE")
        CLIENTES_GUARDADOS(i).APELLIDO_001 = LEER("APELLIDO")
        CLIENTES_GUARDADOS(i).APELLIDO.Text = LEER("APELLIDO")
        CLIENTES_GUARDADOS(i).TELEFONO_001 = LEER("TELEFONO")
        CLIENTES_GUARDADOS(i).PEDIDO = LEER("PEDIDO")
        CLIENTES_GUARDADOS(i).CANTIDAD = LEER("CANTIDAD")
        CLIENTES_GUARDADOS(i).COSTO = LEER("COSTO")
        CLIENTES_GUARDADOS(i).ADELANTO = LEER("ADELANTO")
        CLIENTES_GUARDADOS(i).FALTA = LEER("FALTA")
        CLIENTES_GUARDADOS(i).ESTADO_003 = LEER("ESTADO")
        CLIENTES_GUARDADOS(i).ESTADO_001.Text = LEER("ESTADO")
        CLIENTES_GUARDADOS(i).PAGADO = LEER("PAGADO")
        CLIENTES_GUARDADOS(i).FECHA = LEER("FECHA")
        CLIENTES_GUARDADOS(i).METODO_DE_PAGO.Text = LEER("FECHA")
        CLIENTES_GUARDADOS(i).HORA = LEER("HORA")

        FlowLayoutPanel5.Controls.Add(CLIENTES_GUARDADOS(i))

        i += 1
    End While

    CONECTAR.Close()
    Me.Refresh()
End Sub

1 Ответ

0 голосов
/ 17 апреля 2020

Попробуйте следующее:

Public Class Form1

    Dim CLIENTES_GUARDADOS()
    Dim index As Integer = 0

    Private Sub ButtonNext_Click(sender As System.Object, e As System.EventArgs) Handles ButtonNext.Click
        If index < CLIENTES_GUARDADOS.Length - 2 Then
            index = index + 1
            DisplayCurrent()
        End If

    End Sub

    Private Sub ButtonPrevious_Click(sender As System.Object, e As System.EventArgs) Handles ButtonPrevious.Click
        If index > 0 Then
            index = index - 1
            DisplayCurrent()
        End If
    End Sub
    Private Sub DisplayCurrent()
        'fill panel with the CLIENTES_GUARDADOS(index)
    End Sub
End Class
...