Bonjour

sur ma form j ai des onglets Alphabetiques et une datagriview

actuellement a chaque fois que je cliques su un onglet, A, B, C....
je purge le dataset,
je change la requete sql et je regarni le dataset

que serait il mieux de faire
Ca , ou charger toutes les données dans le dataset et a chaque onglet fair eun filtre ?

qui serait le plus rapide ?
ou meilleur pour la mémoire ??

merci

voici mon code actuel

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
        private void doOuvreDonnees(string sOnglet)
        {
            bOpen = true;
 
            try
            {
                // Ouverture et remplssage de datasets
                int iCountFilms = 0;
                taEmprunteurs.Connection.Close();
                taEmprunteurs.Connection.ConnectionString = sConnect;
                this.taEmprunteurs.Fill(this.dsEmprunteurs.Emprunteurs);
 
                // Ouverture de la connection
                taFilms.Connection.Close();
                taFilms.Connection.ConnectionString = sConnect;
                taFilms.ClearBeforeFill = true;
 
                //// On change de query en fonction de l'onglet
                if (sOnglet != "*")
                {
                    taFilms.FillByOnglet(this.dsFilms.Films, sOnglet);
                }
                else
                {
                    taFilms.Fill(this.dsFilms.Films);
                }
 
                // Fermeture de la connection
                taFilms.Connection.Close();
 
                // On compte le nombre de ilms et on affiche ce nombre dans la statusbar
                iCountFilms = this.dsFilms.Films.Count;
                if (iCountFilms > 0)
                {
                    _mainForm.bsCompte.Caption = String.Format("Nombre de films : {0}", iCountFilms);
                }
                else
                {
                    _mainForm.bsCompte.Caption = "Pas de films dans cet onglet...";
                }
 
                // les boutons sont allumés en fonction du nombre de lignes
                btnDelete.Enabled = iCountFilms > 0;
                btnPrint.Enabled = iCountFilms > 0;
 
            }
            catch 
            {
                MessageBox.Show(this, "La valeur saisie ne permet pas de faire des recherche. Corrigez...\n\n" +
                    "Ou le chemmin de la BDD n'est pas correct. Corrigez le dans le menu Configuration", "Saisie incorrecte...", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
 
            bOpen = false;
            dataGridListe_SelectionChanged(this, null);
        }