Mysql
 sql >> Base de données >  >> RDS >> Mysql

C# - Récupérer des données de MySQL et les ordonner dans des pages sans DataGridView

Dans vos clics de bouton, vous mettez à jour les valeurs x et y, mais vous ne réexécutez jamais la requête de base de données ni ne mettez à jour les données sur le formulaire. Vous devez récupérer la "page" de données suivante pour l'afficher.

Tout d'abord, extrayez le code de votre base de données dans une méthode plutôt que dans le Load événement :

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

Puis dans le Load événement définir votre x initial et y valeurs et charger les données :

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

Cela devrait charger la "page" initiale de données. Ensuite, vous avez probablement un bouton "suivant" et "précédent" pour la pagination ? Chacun incrémenterait/décrémenterait le x et y valeurs en conséquence. Quelque chose comme ça :

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

Pour aller plus loin, vous voudrez ajouter des vérifications de limites afin que les gens ne puissent pas cliquer sur "suivant" sur la dernière page ou sur "précédent" sur la première page. Une gestion des erreurs serait probablement une bonne idée. Il existe de nombreuses façons de polir cela. Mais l'idée de base est que vous devez réinterroger la base de données et relier les contrôles de formulaire à chaque page.