sql >> Base de Datos >  >> RDS >> Mysql

C#:recuperar datos de MySQL y ordenarlos en páginas sin DataGridView

Al hacer clic en su botón, actualiza los valores x e y, pero nunca vuelve a ejecutar la consulta de la base de datos ni actualiza los datos en el formulario. Debe obtener la siguiente "página" de datos para mostrarla.

Primero, extraiga el código de su base de datos en un método en lugar de en Load evento:

private void LoadData()
{
    server = "localhost";
    database = "app";
    uid = "root";
    password = "root";
    string connectionString;
    connectionString = "SERVER=" + server + ";" + "DATABASE=" + database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";";
    connection = new MySqlConnection(connectionString);
    if (this.OpenConnection() == true)
    {
        string query = "SELECT * from EVENTS LIMIT"+ x +","+ y +";";
        mySqlDataAdapter = new MySqlDataAdapter(query , connection);
        ...
        ...
    }
}

Luego en el Load evento establece tu x inicial y y valores y cargar los datos:

private void Form1_Load(object sender, EventArgs e)
{
    x = 0;
    y = 20;
    LoadData();
}

Esto debería cargar la "página" inicial de datos. Entonces, ¿presumiblemente tiene un botón "siguiente" y "anterior" para paginar? Cada uno incrementaría/decrementaría el x y y valores en consecuencia. Algo como esto:

private void nextButton_Click(object sender, EventArgs e)
{
    x += 20;
    y += 20;
    LoadData();
}

private void previousButton_Click(object sender, EventArgs e)
{
    x -= 20;
    y -= 20;
    LoadData();
}

Yendo más allá, querrá agregar algunas comprobaciones de límites para que las personas no puedan hacer clic en "siguiente" en la última página o "anterior" en la primera página. Probablemente algún manejo de errores sería una buena idea. Hay muchas maneras de pulir esto. Pero la idea básica es que necesita volver a consultar la base de datos y volver a vincular los controles de formulario con cada página.