Trong các lần nhấp vào nút, bạn cập nhật các giá trị x và y, nhưng bạn không bao giờ thực hiện lại truy vấn cơ sở dữ liệu hoặc cập nhật dữ liệu trên biểu mẫu. Bạn cần tìm nạp "trang" dữ liệu tiếp theo để hiển thị nó.
Đầu tiên, trích xuất mã cơ sở dữ liệu của bạn thành một phương thức thay vì trong Load
sự kiện:
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);
...
...
}
}
Sau đó, trong Load
sự kiện đặt x
ban đầu của bạn và y
giá trị và tải dữ liệu:
private void Form1_Load(object sender, EventArgs e)
{
x = 0;
y = 20;
LoadData();
}
Điều này sẽ tải "trang" dữ liệu ban đầu. Sau đó, có lẽ bạn có một nút "tiếp theo" và "trước đó" để phân trang? Mỗi cái sẽ tăng / giảm x
và y
các giá trị tương ứng. Một cái gì đó như thế nà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();
}
Đi xa hơn, bạn sẽ muốn thêm một số kiểm tra giới hạn để mọi người không thể nhấp vào "tiếp theo" trên trang cuối cùng hoặc "trước đó" trên trang đầu tiên. Có lẽ một số xử lý lỗi sẽ là một ý tưởng hay. Có rất nhiều cách để đánh bóng điều này. Nhưng ý tưởng cơ bản là bạn cần truy vấn lại cơ sở dữ liệu và liên kết lại các điều khiển biểu mẫu với mỗi trang.