Mysql
 sql >> Database >  >> RDS >> Mysql

C# -- Recupero dei dati da MySQL e ordinamento in pagine senza DataGridView

Con i clic sui pulsanti si aggiornano i valori xey, ma non si esegue mai nuovamente la query del database o si aggiornano i dati sul modulo. Devi recuperare la "pagina" di dati successiva per visualizzarla.

Innanzitutto, estrai il codice del database in un metodo anziché in 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);
        ...
        ...
    }
}

Quindi nel Load evento imposta il tuo x iniziale e y valori e caricare i dati:

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

Questo dovrebbe caricare la "pagina" iniziale di dati. Quindi presumibilmente hai un pulsante "successivo" e "precedente" per il paging? Ognuno incrementerebbe/diminuirebbe il x e y valori di conseguenza. Qualcosa del genere:

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();
}

Andando oltre, ti consigliamo di aggiungere alcuni limiti di controllo in modo che le persone non possano fare clic su "successivo" nell'ultima pagina o "precedente" nella prima pagina. Probabilmente una gestione degli errori sarebbe una buona idea. Ci sono molti modi per lucidarlo. Ma l'idea di base è che devi interrogare nuovamente il database e riassociare i controlli del modulo a ogni pagina.