sql >> データベース >  >> RDS >> Mysql

C#-MySQLからデータを取得し、DataGridViewのないページでそれらを並べ替える

    ボタンのクリックで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();
    }
    

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



    1. PostgreSQLでのAtanh()のしくみ

    2. JDBCTemplateは、BeanPropertyRowMapperを使用してネストされたPOJOを設定します

    3. MySQLの主キーを更新しています

    4. 外部キー、ブロック、および更新の競合