IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Méthode d'accès à une base client/serveur


Sujet :

VB.NET

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 31
    Par défaut Méthode d'accès à une base client/serveur
    Bonjour le monde, je viens du développement VB 6 / VBA (10 années d'exp. environ) et je suis super motivé pour passer définitivement à VB.Net 2008

    Je poste en désespoir de cause

    J'ai développé un ERP, sous Access 2000, utilisé par 15 personnes en simultanée (fichier MDB de 80Mo sur un serveur, interface MDB sur chaque poste client). Les temps de réponse sont satisfaisants.

    Je veux migrer sous VB.Net 2008 / BDD client-serveur Sybase.

    Je n'arrive pas à trouver une procédure de connexion à une base de données qui me satisfasse.
    J'ai utilisé la méthode "assistée" mais j'ai des temps de réponse qui sont lamentables par rapport à la même requête sous Access 2000 (listage de 6500 contacts en 4s. sous Access et environ 12s. sous VB.Net en utilisant un DataGridView qui s'appuie sur un Datasource avec un DataSet simplifié au max, c'est à dire 1 seule table)
    La même requête lancée sous ISQL (outil de sybase) prend 2s.

    Je fouille sur tous les sites traitants de .Net mais aucune méthode ne me parait optimisée.

    Quelqu'un pourrait-il m'expliquer quelle est "la" méthode qui est la plus adaptée svp ?

    Sorry pour la longueur et merci d'avance

    A+
    Yo'

    PS : le serveur de BDD tourne sur un DELL bi-xéon, 4Go de RAM, réseau en Gigabit.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    205
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 205
    Par défaut
    As-tu essaye de taper la requête directement dans le SGBD pour voir combien de temps cela prend a l'exécution?

  3. #3
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    on a aussi halluciné la première fois qu'on a rempli un datagridview .net par rapport au temps nécessaire sur un grid de vb6 ...


    le soucis c'est le datatable et le dataset ... et le datagridview lol
    dataset c'est bien pour les débutants, mais ca se base sur le datatable qui est horrible niveau perf
    en utilisant juste le datareader on est revenu dans des temps similaires à vb6

    après pour le remplissage du datagridview avec plusieurs milliers de lignes, il faut activer le virtualmode
    si tu as plus d'un form où tu afficheras plusieurs milliers de lignes, le mieux est de faire un usercontrol avec un datagridview dans lequel tu implémentes le virtualmode


    sinon pourquoi ne pas choisir sql server ... y a une version express (certes qui je crois limite légalement à 5 users, m'enfin tout le monde en mets beaucoup plus ...)


    (si tu cherches mes posts sur ce forum, j'ai expliqué plusieurs fois comment faire un grid en usercontrol qui est performant et qui se remplie au fur et à mesure)
    (et qui d'ailleurs fait aussi le café (bouton ajouter qui créer un formulaire pendant l'execution, bouton maj, bouton supprimer, bouton imprimer etc...))
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    205
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 205
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    (si tu cherches mes posts sur ce forum, j'ai expliqué plusieurs fois comment faire un grid en usercontrol qui est performant et qui se remplie au fur et à mesure)
    (et qui d'ailleurs fait aussi le café (bouton ajouter qui créer un formulaire pendant l'execution, bouton maj, bouton supprimer, bouton imprimer etc...))
    Pourquoi ne pas écrire un petit tuto?

  5. #5
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    pourquoi ne pas filer le code source non plus ? ^_^


    c'est un datagrid qu'on a développé dans le cadre professionnel ... pas sur que ca plaise que je le distribue (moi ca me dérangerais pas spécialement ...)

    par contre j'ai expliqué le principe de base du chargement des données sur un thread séparé dans une collection peu typée (plutot qu'un datatable qui est une classe plutot lourde) avec le datagrid en virtualmode
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Membre averti
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 31
    Par défaut
    Sorry pour le retard ... pas mal de boulot en ce moment
    et merci pour les réps je me sens un peu moins seul

    julien_iz :
    Non je n'ai pas testé le SQL dans le code car, pour être honnête, je ne suis pas encore assez familier avec .net pour faire ce type de manip à froid
    Il me manque pas mal de notions pour créer une connexion avec une base sybase de mémoire.

    Pol63 :
    Si j'ai bien compris, tu bosses avec VB.Net au quotidien et tu n'utilises pas les Datatable, Dataset et autres ?
    Après test, le VirtualMode n'améliore pas mes temps de réponse.

    Comment feriez-vous pour faire ceci :

    • Afficher une liste de contacts (6500 environ) dans un objet qui permettrait de mettre en surbrillance certaines lignes (qui correspondent à des contacts avec qui on ne souhaite plus travailler) ou éventuellement de mettre de petits avatars en tête de ligne en fonction de la valeur d'un champs
    • Pouvoir filtrer facilement les contacts en fonction de plusieurs critères (ville, code postal, une partie du nom de l'entreprise, etc.). Un peu à l'image d'Access où on peut facilement utiliser le bouton droit de la souris pour indiquer 'Filtrer la sélection' ou 'Filtrer hors sélection', ...
    • Afficher un form qui permettrait de créer ou modifier la fiche d'un contact


    Bon encore sorry pour la longueur mais c'est pour vous donner tous les éléments nécessaires

    Merci dans tous les cas

  7. #7
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    Citation Envoyé par yoyogott Voir le message
    Pol63 :
    Si j'ai bien compris, tu bosses avec VB.Net au quotidien et tu n'utilises pas les Datatable, Dataset et autres ?
    non ces objets sont lents et plutot axés débutant ...
    avec un datareader tu peux obtenir les données

    notre datagrid permet d'avoir 50 000 lignes sans bloquer l'application, grace entre autre au virtualmode



    après si tu veux une appli performante, des tris et peu de codage, je t'invite à utiliser wpf et entity framework (sous visual studio 2008 sp1)
    ca simplifie énormément le codage, par contre ca peut prendre du temps à assimiler ...



    sinon en restant en windows forms, tu peux faire une classe contact reflétant la base de données, un list(of contact) qui se remplie sur un thread séparé
    un listbox en ayant surchargé le tostring sur la classe contact (pour afficher le nom par exemple), sur le clic d'un element du listbox tu affiche le contact en détail sur le reste de l'écran
    et une petite fonction de tri/recherche au dessus du listbox

    mais là aussi ca serait plus simple en wpf, il y a des collections qui savent faire les tris rapidement avec quelques lignes de code (génériques en plus) ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  8. #8
    Membre averti
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 31
    Par défaut
    Cool, merci Pol
    Je vais chercher de ce côté alors, c'est déjà une grande avancée pour moi qui galère depuis pas mal de temps
    Si tu as d'autres infos qui peuvent m'orienter ... je suis preneur
    Thanks

  9. #9
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Bonjour,

    Essaye de passer en framework 3.5, ce qui a résolu nos problèmes de lenteur d'affichage des Datagridview.

  10. #10
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    Citation Envoyé par Graffito Voir le message
    Bonjour,

    Essaye de passer en framework 3.5, ce qui a résolu nos problèmes de lenteur d'affichage des Datagridview.
    je serais très curieux de savoiz en quoi ... le framework 3.5 n'est qu'un ajout de classe par rapport au framework 2, donc le datagridview étant du framework 2 il est resté inchangé
    de plus la clr est la même aussi ... donc j'y crois pas trop
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  11. #11
    Rédacteur
    Avatar de Hinault Romaric
    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2007
    Messages
    4 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4 570
    Billets dans le blog
    121
    Par défaut
    Citation Envoyé par Graffito Voir le message
    Bonjour,

    Essaye de passer en framework 3.5, ce qui a résolu nos problèmes de lenteur d'affichage des Datagridview.
    Moi même j'aimerais bien savoir en quoi.

    Personnellement j'utilise le contrôle SourceGrid qui est free et entièrement écrite en C# avec du code générer, perso j'ai trouvé ce contrôle très puissant et rapide comparer au DatagridView.

    juste avec un DataReader tu charge ta grille et tu peut mettre certaine ligne un surbrillance, effectuer des tries et des filtres.

    Voila le lien de pour télécharger et la Doc http://www.devage.com/sourcegrid/SourceGrid_EN.html
    Vous souhaitez participer aux rubriques .NET ? Contactez-moi

    Si déboguer est l’art de corriger les bugs, alors programmer est l’art d’en faire
    Mon blog, Mes articles, Me suivre sur Twitter
    En posant correctement votre problème, on trouve la moitié de la solution

  12. #12
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    le framework 3.5 .... donc j'y crois pas trop
    L'amélioration des performances du DataGridView est juste une constatation que nous avons fait, et qui a été confirmée par d'autres utilisateurs confrontés au même problème.
    Par exemple : http://www.developpez.net/forums/d76...-datagridview/

Discussions similaires

  1. [WD15] Accès à une base de données client serveur
    Par Ratafia67 dans le forum WinDev
    Réponses: 4
    Dernier message: 03/12/2010, 08h57
  2. Acces à une base SQLServer sur un serveur dédié
    Par Cabire dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 11/04/2008, 15h13
  3. Pb accès à une base sur serveur !
    Par mosquitout dans le forum Access
    Réponses: 8
    Dernier message: 12/07/2006, 19h03
  4. Accès à une base de données SQL serveur
    Par TALNA dans le forum Bases de données
    Réponses: 1
    Dernier message: 29/11/2005, 09h09
  5. Réponses: 17
    Dernier message: 28/10/2005, 11h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo