Bonjour à tous,
Je rencontre un problème de lenteur sur une petite application qui utilise une BDD Access. La BDD contient une seule table avec une soixantaine de colonnes et pour l'instant un peu plus de 1000 lignes. Le fichier Access est stocké et partagé en réseau.
Au départ j'ai utilisé une connexion de données avec DataSet, DataTableAdapter et BindingSource. Le remplissage du DataGrid prenait plus de 20s.
J'ai testé en déplaçant le fichier en local sur le SSD de ma machine : Pas d'améliorations notables.
Dans Access la basse fonctionne sans lenteur. Une opération de tri s'effectue instantanément.
Enfin j'ai supprimer ma source données pour gérer tout cela dans le code. En m'inspirant du cours : http://plasserre.developpez.com/cour...ees2#LXVII-F-2
J'utilise le code suivant :
Le résultat est de 18s pour remplir le Datagrid. Un tri dans le DataGrid prend un temps comparable.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Dim Connection_Access As New OleDbConnection Dim Chaine_connection_Access As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=MonFichier.accdb;Jet OLEDB:Database Password=MonMDP" Dim Commande_Access_Proposition_articles As New OleDbCommand("SELECT * FROM Proposition_articles ORDER BY ID;", Connection_Access) Dim DataAdapter_Proposition_articles As New OleDbDataAdapter(Commande_Access_Proposition_articles) Dim DataSet_Proposition_article As New DataSet Sub MAJ_Datagrid() Connection_Access.ConnectionString = Chaine_connection_Access Connection_Access.Open() DataAdapter_Proposition_articles.Fill(DataSet_Proposition_article, "Proposition_articles") Formulaire_principal.DataGridView_Principal.DataSource = DataSet_Proposition_article.Tables("Proposition_articles") End Sub
J'ai également essayé avec une BindingSource mais le résultat est similaire.
Quelles erreurs ai-je commise pour obtenir une lenteur pareille ?
Merci de votre aide.
Bonne journée.
Partager