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 :

Optimiser une boucle For Each


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2010
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2010
    Messages : 71
    Par défaut Optimiser une boucle For Each
    Bonjour ,

    j'ai un code qui fait la modification de valeur d'une colonne , le problème c que avec 18000 articles il prend 1 min 30 s . voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim cours_euro As Decimal = TresorsServer.valeurUnique("select cours_devi from Devise where code_devi='EUR'")
     For Each article As DataRow In article_fox_pro.Rows
             article.Item(4) = CDec(General.formater(article.Item(4) / cours_euro).Replace(".", ","))
    Next
    est ce que on peux diminuer le temps de traitement ??

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 194
    Par défaut
    1) Ne pas faire le replace mais mettre un format dans tes combobox/datagrid
    2) Mettre un index sur code_devi dans ta base de donéees

    De plus le format d'affiche dépend des regional setting normalement

  3. #3
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 198
    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 198
    Par défaut
    si c'est pour faire une mise à jour dans la base de données, il faut la faire directement dans la base de données et en bloc (toutes les lignes d'un coup dans le même update)

    sinon passer par une base de données doit pouvoir aussi améliorer le temps : mettre tes 18k lignes dans une table temporaire, faire un update en bloc et relire les données
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  4. #4
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2010
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2010
    Messages : 71
    Par défaut
    le bloc de code que j'ai crée n'est pas pour un update dans la base de donnée c'est juste un traitement dans la mémoire , donc je fait pour modifier un prix de MAD a EUR dans un datatable mais ça prend beaucoup de temps !!

  5. #5
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 194
    Par défaut
    zaghi

    Pq veux tu convertir le prix en euro?

    Autre moyen un champ calculer dans la base de données

  6. #6
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2010
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2010
    Messages : 71
    Par défaut
    Parce que ce n'est pas ma base de donnée c une base d'un autre programme donc je suis obliger de sélectionner les articles dans un datatable puis modifier la structure et les données pour l’adapter a mon programme .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Optimisation d'une boucle for each
    Par misscricri dans le forum VB.NET
    Réponses: 3
    Dernier message: 25/01/2012, 23h06
  2. trié des date avec une boucle for each
    Par alex santus dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 03/09/2009, 11h00
  3. test avant d'entrer dans une boucle For each cell in selection
    Par totoro02 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 13/01/2009, 09h27
  4. comment effacer un element dans un collection dans une boucle for each
    Par medkarim dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 17/10/2008, 12h48
  5. [VBA-E]PB sur une boucle for each next
    Par rond24 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 31/07/2006, 15h47

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