ボタンのクリックで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();
}
さらに、境界チェックを追加して、ユーザーが最後のページの[次へ]または最初のページの[前へ]をクリックできないようにする必要があります。おそらく、いくつかのエラー処理は良い考えでしょう。これを磨く方法はたくさんあります。ただし、基本的な考え方は、データベースを再クエリし、フォームコントロールを各ページに再バインドする必要があるということです。