-
Base de données Access
Bonjour,
J'essaie de récupérer des données d'une base Acces à l'aide du code :
_connexion = new OleDbConnection(new StringBuilder("Provider=Microsoft.Jet.OLEDB.4.0;Data source=").Append(Application.CheminBaseDeDonneesABiTAVISION).ToString());
OleDbDataAdapter resultat = new OleDbDataAdapter(in_requete, _connexion);
resultat.Fill(donnees);
Mon problème est que pour la récupération de 80 champs (tous nommés dans la requête) d'une table (avec une simple clause WHERE), la requête est effectuée en moins d'une seconde, mais l'instruction :
resultat.fill(donnees)
prend elle environ 4 secondes !!!
Manque-t-il quelque chose dans mes instructions ?
-
C'est l'instruction Resultat.Fill qui execute ta requete, donc c'est normal quelle est plus longue.
Par contre tu doit avoir pas mal d'enregistrement dans ta table pour que cela prenne autant de temps.
-
Ben non, et c'est là le problème. Il n'y a "que" 900 lignes dans la table pour laquelle la requête prend 4 secondes.
-
Je viens de tester : si je fais un select *, cela prend 11 secondes (la table contient près de 200 champs). Si je fais le select sur un seul champ, c'est instantané.
-
Je viens de tester en me connectant à une base située sur un autre PC, et les temps des requêtes sont encore plus longs !!!
En C#, quel est le meilleur moyen de récupérer des données dans une base ACCESS ? Avec OleDbConnection, via ODBC, ... ?