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

Framework .NET Discussion :

[DataAdapter] Pourquoi mon Update est chaotique ?


Sujet :

Framework .NET

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 14
    Points : 13
    Points
    13
    Par défaut [DataAdapter] Pourquoi mon Update est chaotique ?
    Bonjour,

    une ptite question sur les DataAdapter :

    d'un coté j'ai un dataset qui a été rempli de lignes, l'une l'après l'autre. Ces lignes sont ordonnées selon un des attributs de manière croissante.
    De l'autre j'ai une table sous MS SQL server 2007.

    J'utilise un DataAdapter et sa méthode update() pour remplir la BD. Ca fonctionne si ce n'est que les données enregistrées ne sont plus du tout ordonnées. Le update (qui n'est censé faire que des insertions car à chaque fois ce sont des nvlles lignes) mélange toutes les lignes et c'est pas cool de sa part.

    Alors je vais utiliser une réelle commande insert pour remplacer ce update hératique. Mais pourquoi ça ne marchait pas ?

  2. #2
    Membre expérimenté Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Points : 1 379
    Points
    1 379
    Par défaut
    Euh.. question bête, ça veut dire quoi "donnée ordonnée dans un BDD" ?
    C'est par rapport à quel champ ?

    C'est pas une vraie question, c'est juste pour dire que la façon dont sont rangées les données dans la base, c'est le problème du SGBD, pas du développeur. Si tu as besoin d'un ordre dans ta base, il faut rajouter un champ 'indice' (entier), dans lequel tu mets l'ordre de tes données.
    Et quand tu consultes ta base, un bon vieil 'ORDER BY'...

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 14
    Points : 13
    Points
    13
    Par défaut
    Oui c'est sur, la solution d'ajouter un index pour numéroter les lignes arrangerait tout. Mais c'est plus du rafistolage qu'autre chose, j'aimerais m'en passer. Pour l'instant, sans order by, je m'attendais à ce que chaque nouvelle ligne insérée le soit au bas de la table existante. Or les nouvelles lignes sont insérées n'importe où au milieu de la table. Ce n'est pas tout à fait chaotique, les nouvelles données restent à peu près en 'bloc' mais l'endroit où ces 'blocs' s'insèrent est aléatoire. Enfin c'est le bordel.
    Je pensais que ça venait de la méthode update du dataAdapter mais c'est pareil quand j'implémente un simple objet sqlCommand("Insert INTO blabla..."). L'anarchie reigne dans ma table, qui est assez volumineuse.

    Est-ce que quelqun comprend ce comportement lors de l'insertion ?

    En fait lorsque j'insère une ligne directement à l'aide du SGBD, c'est à ce moment que la ligne est insérée n'importe où dans la table.
    Donc le problème ne provient pas du framework C#

    Je vais poster dans le forum adéquat car le problème n'est pas pour autant réglé et la personne qui gère la BD est en vacances

    Pour info, le SGBD en question est MS SQL SERVER.

  4. #4
    Membre actif Avatar de DarkMolo
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    207
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Maroc

    Informations forums :
    Inscription : Juillet 2006
    Messages : 207
    Points : 277
    Points
    277
    Par défaut
    salut,
    Ce que t'as dit Mose est la réalité, pour t'en persuader essaye d'inserer directement dans cette table via l'analyseur de requête de MS SQL server 2007 sans passer par ton programme tu verras que y'aura le même résultat.

    @Edit: Execuse moi, J'avais pas vu ton message.
    Certified SCJP 5.0 / SCWCD 5.0 / SCEA 5.0
    C'est une grande folie de vouloir être sage tout seul.
    Duc de La Rochefoucauld

  5. #5
    Membre expérimenté Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Points : 1 379
    Points
    1 379
    Par défaut
    Citation Envoyé par hm@rch@1
    Oui c'est sur, la solution d'ajouter un index pour numéroter les lignes arrangerait tout. Mais c'est plus du rafistolage qu'autre chose
    Nan pti gars, c'est ta solution qui est du rafistolage. Lit bien la doc de ton SGBD, je suis sur qu'il est écrit qqpart, noir sur blanc, que l'ordre d'insertion ne garanti pas l'ordre de lecture. Et c'est comme ça que fonctionnent TOUS les SGBD.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 14
    Points : 13
    Points
    13
    Par défaut merci
    Ok grand père
    Je m'avoue vaincu, c'est le DD qui a gagné. Reste plus qu'à numéroter les lignes...

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

Discussions similaires

  1. pourquoi mon fichier est-il passé de 200 k à 8M?
    Par nath-0-0 dans le forum Excel
    Réponses: 7
    Dernier message: 12/05/2010, 17h54
  2. Pourquoi mon Job est en failure ?
    Par shadeoner dans le forum Administration
    Réponses: 1
    Dernier message: 17/03/2009, 12h31
  3. [Google] Pourquoi mon site est passé de Pagerank 4 a 3 ?
    Par badrel dans le forum Référencement
    Réponses: 3
    Dernier message: 04/03/2008, 18h01
  4. Pourquoi mon code est plus lent que Arrays.sort
    Par alexis779 dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 12/12/2006, 12h44
  5. Réponses: 6
    Dernier message: 19/11/2006, 00h41

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