Mettre à jour la table du serveur SQL à l'aide de Datatbale

c# datatable sqlbulkcopy

Question

J'ai en mémoire table (DataTable), je veux mettre à jour la table SQL avec l'aide du DataTable en une seule fois (mise à jour en bloc). Je sais comment insérer en bloc des données de DataTable dans une table SQL. Y at-il un moyen de mettre à jour en masse?

Réponse acceptée

MODIFIÉ: mal interprété la question initiale. Voici la "mise à jour en masse":

UPDATE <table> SET tbl.value = dt.value
    FROM @Datatable dt
    INNER JOIN <table> tbl ON tbl.<id_column> = dt.<id_column>

Réponse populaire

Vous pouvez utiliser l'une des méthodes UpdateDataSet () du bloc MS Enterprise Library Data.

Celles-ci liront l'état de la ligne (ajout, mise à jour, suppression) de chaque ligne et exécuteront la commande nommée dans la méthode UpdateDataSet (). Avec un serveur de base de données raisonnable, il peut gérer quelques milliers d'enregistrements en quelques secondes.

Le seul inconvénient que j'ai trouvé avec ceci est qu'il ne peut pas renvoyer les valeurs IDENTITY insérées récemment, mais qu'il est assez facile de les sélectionner dans la base de données une fois l'insertion terminée et de les remapper au datatable.



Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow