sql >> Databáze >  >> RDS >> Mysql

C# -- Získávání dat z MySQL a jejich řazení do stránek bez DataGridView

Kliknutím na tlačítko aktualizujete hodnoty x a y, ale nikdy znovu neprovedete databázový dotaz ani neaktualizujete data ve formuláři. Abyste ji mohli zobrazit, musíte načíst další „stránku“ dat.

Nejprve extrahujte kód databáze do metody, nikoli do Load událost:

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);
        ...
        ...
    }
}

Poté v Load událost nastavte vaše počáteční x a y hodnoty a načtěte data:

private void Form1_Load(object sender, EventArgs e)
{
    x = 0;
    y = 20;
    LoadData();
}

Tím by se měla načíst úvodní „stránka“ dat. Pak pravděpodobně máte tlačítko "další" a "předchozí" pro stránkování? Každý z nich by zvýšil/snížil x a y hodnoty podle toho. Něco jako toto:

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();
}

Pokud půjdete dále, budete chtít přidat kontrolu hranic, aby lidé nemohli kliknout na „další“ na poslední stránce nebo „předchozí“ na první stránce. Pravděpodobně by bylo dobré nějaké ošetření chyb. Existuje mnoho způsobů, jak to vyleštit. Ale základní myšlenkou je, že musíte znovu zadat dotaz do databáze a znovu svázat ovládací prvky formuláře s každou stránkou.



  1. Jak změnit velikost ovládacích prvků formuláře v Accessu 2016

  2. Měříte výkon serveru SQL pomocí těchto metrik?

  3. Jak vytvořit pole JSON z databáze mysql

  4. Zkontrolujte, zda je objekt uloženou procedurou pomocí OBJECTPROPERTY() na serveru SQL Server