In Ihren Schaltflächenklicks aktualisieren Sie die x- und y-Werte, aber Sie führen niemals die Datenbankabfrage erneut aus oder aktualisieren die Daten im Formular. Sie müssen die nächste "Seite" mit Daten abrufen, um sie anzuzeigen.
Extrahieren Sie zuerst Ihren Datenbankcode in eine Methode und nicht in Load
Ereignis:
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);
...
...
}
}
Dann im Load
event setzen Sie Ihren anfänglichen x
und y
Werte und lade die Daten:
private void Form1_Load(object sender, EventArgs e)
{
x = 0;
y = 20;
LoadData();
}
Dies sollte die anfängliche "Seite" der Daten laden. Dann haben Sie vermutlich eine "Weiter"- und "Zurück"-Schaltfläche zum Blättern? Jeder würde den x
erhöhen/verringern und y
Werte entsprechend. Etwa so:
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();
}
Um weiter zu gehen, sollten Sie einige Begrenzungsprüfungen hinzufügen, damit die Leute nicht auf der letzten Seite auf „Weiter“ oder auf der ersten Seite auf „Zurück“ klicken können. Wahrscheinlich wäre eine Fehlerbehandlung eine gute Idee. Es gibt viele Möglichkeiten, dies zu polieren. Aber die Grundidee ist, dass Sie die Datenbank erneut abfragen und die Formularsteuerelemente mit jeder Seite neu binden müssen.