При щраквания върху бутоните вие актуализирате стойностите на x и y, но никога не изпълнявате повторно заявката за база данни или актуализирате данните във формуляра. Трябва да извлечете следващата "страница" с данни, за да я покажете.
Първо, извлечете кода на вашата база данни в метод, а не в Load
събитие:
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);
...
...
}
}
След това в Load
събитие задайте вашия начален x
и y
стойности и заредете данните:
private void Form1_Load(object sender, EventArgs e)
{
x = 0;
y = 20;
LoadData();
}
Това трябва да зареди първоначалната "страница" с данни. Тогава вероятно имате бутон "следващ" и "предишен" за пейджинг? Всеки от тях ще увеличи/намали x
и y
стойности съответно. Нещо като това:
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();
}
Продължавайки по-нататък, ще искате да добавите някои проверки на границите, така че хората да не могат да щракнат върху „следващ“ на последната страница или „предишен“ на първата страница. Вероятно някаква обработка на грешки би била добра идея. Има много начини да излъскате това. Но основната идея е, че трябва да направите заявка отново към базата данни и да свържете отново контролите на формуляра с всяка страница.