Szybsze wyświetlenie wyniku zapytania w DataGridView

0

Witam.

Jest jakiś sposób aby przyśpieszyć ładowanie wyników zapytania do DataGridView?
W tej chwili mam po prostu:

FbDataAdapter FbDataAdapter = new FbDataAdapter(zapytanie, FbConnection);
DataSet ds = new DataSet();
FbDataAdapter.Fill(ds, "Tabela");
DataGridView1.DataSource = ds;
DataGridView1.DataMember = "Tabela";

Czas wyświetlania w mojej aplikacji to kilka sekund gdy w programie do zarządzania bazą (SQL Manager Lite for InterBase & Firebird) trwa to poniżej sekundy.

0

Spróbuj ustawić DoubleBuffered na true

    public static class ExtensionMethods
    {
        public static void DoubleBuffered(this DataGridView dgv, bool setting)
        {
            Type dgvType = dgv.GetType();
            PropertyInfo pi = dgvType.GetProperty("DoubleBuffered", BindingFlags.Instance | BindingFlags.NonPublic);
            pi.SetValue(dgv, setting, null);
        }
    }

Nie wiem jak w innych aplikacjach, ale np. w FlameRobinie rekordy ładowane są po 300, np. Masz 500 rekordów pokazuje Ci pierwsze 300, jeżeli przejedziesz niżej to załaduje kolejne 200.

0

Jeżeli to duża baza to Virtual Mode powinno pomóc gdyż wtedy wczytuje się tyle rekordów ile jest potrzebnych w danym momencie. https://msdn.microsoft.com/en-us/library/ms171624%28v=vs.90%29.aspx

0
hipekk napisał(a):

Czas wyświetlania w mojej aplikacji to kilka sekund gdy w programie do zarządzania bazą (SQL Manager Lite for InterBase & Firebird) trwa to poniżej sekundy.

Bo SQL manager nie konwertuje rekordów do obiektów, nie binduje ich z kontrolką, nie rzuca setek zdarzeń i nie przerysowuje GUI na ekranie.
Wczytuj tyle rekordów, ile jest w stanie obejrzeć użytkownik, a nie wszystkie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1