W kliknięciach przycisków aktualizujesz wartości x i y, ale nigdy nie wykonujesz ponownie zapytania do bazy danych ani nie aktualizujesz danych w formularzu. Aby je wyświetlić, musisz pobrać następną „stronę” danych.
Najpierw wyodrębnij kod bazy danych do metody, a nie do Load
wydarzenie:
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);
...
...
}
}
Następnie w Load
zdarzenie ustaw swój początkowy x
i y
wartości i załaduj dane:
private void Form1_Load(object sender, EventArgs e)
{
x = 0;
y = 20;
LoadData();
}
Powinno to załadować początkową „stronę” danych. Więc prawdopodobnie masz przycisk „następny” i „poprzedni” do stronicowania? Każdy z nich zwiększy/zmniejszy x
i y
odpowiednie wartości. Coś takiego:
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();
}
Idąc dalej, będziesz chciał dodać sprawdzanie granic, aby ludzie nie mogli kliknąć „następna” na ostatniej stronie lub „poprzednia” na pierwszej stronie. Prawdopodobnie dobrym pomysłem byłaby obsługa błędów. Jest wiele sposobów na polerowanie tego. Ale podstawowa idea polega na tym, że musisz ponownie przeszukać bazę danych i ponownie powiązać kontrolki formularza z każdą stroną.