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

ADO.NET Discussion :

Transfert de données d'une base à l'autre


Sujet :

ADO.NET

  1. #1
    Modérateur

    Transfert de données d'une base à l'autre
    Hello,
    Par maque de pratique mes connaissances en ADO.Net se rouillent

    Je récupère d'une base A, table T, un certain nombre de données (select * from T where ...), je met ça dans une datatable.

    Je souhaite insérer ces données dans la table T d'une base B qui contient déjà des données sans perdre ces données là.

    Est ce que je peux faire ça de manière automatique avec un DataAdapter par exemple, en une seule commande, ou, suis-je obligé de me palucher chaque ligne de la datatable dans une boucle et générer/exécuter une requête insert pour chacune sur la base B

    Nota : Les tables ont strictement la même structure, les décalages de clé, etc... sont déjà fait, il n'y aura pas de conflit.
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  2. #2
    Membre expert
    une simple procédure stockée ferait l'affaire... un bulkcopy également possiblement...
    Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
    MCTS Database Development
    MCTS Database Administration

  3. #3
    Modérateur

    Hum, j'avais oublié cette discussion

    Tu as probablement raison, mais je m'y suis pris autrement.

    Ce transfert a eu lieu dans le cadre de migrations de données d'une base de données à une autre, certaines données, pas toutes, et certaines avec un traitement entre les 2.
    C'est la raison essentielle pour laquelle le process a été fait via un logiciel en VB et non pas directement en SQL.

    Pour ce transfert-là, une partie des données de la table source donc mais sans traitement, j'ai donc chargé mes données depuis la base source dans une datatable via un dataadapter connecté sur la base source.
    Après déconnexion, j'ai bouclé sur mes données dans la datatable pour leur changer le statut en "Nouveau" (j'ai pas le terme exact en mémoire).
    J'ai ensuite connecté un dataadapter à la base de destination, exécuter une requête SELECT bidon (ne renvoyant rien) sur la table destination mais avec exactement le même format que mes données à transférer, juste pour bénéficier de la construction automatique des requêtes Insert/Select/Update/... dans le dataadapter, puis j'ai connecté ma datatable pleine à ce dataadapter et lancé la commande Update du DA afin qu'il insère (mes données ayant un statut "Nouveau") dans la table de destination.

    Plus long à décrire qu'à coder

    Bon, j'ai pas le code sous la main, sinon je l'aurais posté, ça aurait été plus simple.
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire