SqlParameters

Résolu
hudon77 Messages postés 127 Date d'inscription vendredi 21 janvier 2005 Statut Membre Dernière intervention 29 mai 2014 - 19 mars 2013 à 16:02
guilleto Messages postés 256 Date d'inscription jeudi 23 octobre 2003 Statut Membre Dernière intervention 20 mars 2013 - 20 mars 2013 à 17:06
Bonjour à tous. Je dois updater une table avec des millier d'enregistrement sauf que je ne veux pas faire un executeNonQuery a chaque passage dans ma boucle. y'a t'il un moyen de specifier ma requête et d'envoyer une collection de sqlParameter qui representerais mes millers de ligne de ma datatable.

Merci

Nicolas!

7 réponses

Utilisateur anonyme
19 mars 2013 à 19:22
Bonjour,

Dans VB2005, il y avait un machin du genre sqlbulkupdater ou quelque chose de semblable. Je suppose qu'il a été maintenu depuis. Mais je n'ai pas mon aide VB sous la main pour l'instant.
3
hudon77 Messages postés 127 Date d'inscription vendredi 21 janvier 2005 Statut Membre Dernière intervention 29 mai 2014
19 mars 2013 à 21:10
Wow c'est magique mon traitement prend maintenant 3 ligne au lieu de 50 et au niveau de la performance c'est passé de 8 muinutes à une seconde :)

Merci

Nicolas!
0
guilleto Messages postés 256 Date d'inscription jeudi 23 octobre 2003 Statut Membre Dernière intervention 20 mars 2013 1
20 mars 2013 à 09:26
Bonjour hudon77,

Cette solution pour traiter plusieurs lignes en même temps me semble très intéressante ... Peux-tu mettre un exemple afin de pouvoir utiliser cette méthode ?

Merci

Olivier
0
hudon77 Messages postés 127 Date d'inscription vendredi 21 janvier 2005 Statut Membre Dernière intervention 29 mai 2014
20 mars 2013 à 15:25
Supposont que oDatatable contient des données.
Tu as aussi la propriété columnmapping mais j'en ai pas eu besoin car mes structure etait identique.


Dim oBulkCopy As New SqlBulkCopy(oSqlConn)
oBulkCopy.DestinationTable = "maTable"
oBulkCopy.WriteToServer(oDataTable)

Nicolas!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
guilleto Messages postés 256 Date d'inscription jeudi 23 octobre 2003 Statut Membre Dernière intervention 20 mars 2013 1
20 mars 2013 à 16:01
Merci hudon77,

Dans ta variable oDatatable, ce sont des requêtes sql d'ajout d'enregistrements ?
Comme par exemple :
INSERT INTO 'MaTable' (Champ1, Champ2) VALUES (1,"test")

C'est bien cela ?

Par avance merci

Olivier
0
hudon77 Messages postés 127 Date d'inscription vendredi 21 janvier 2005 Statut Membre Dernière intervention 29 mai 2014
20 mars 2013 à 16:36
Non ce sont des données que tu veux inseré. C'est la classe sqlbulkcopy qui fait le travail. Tu n'as donc pas a gerer les requetes


Nicolas!
0
guilleto Messages postés 256 Date d'inscription jeudi 23 octobre 2003 Statut Membre Dernière intervention 20 mars 2013 1
20 mars 2013 à 17:06
Si j'ai une table 'MaTable' (original je sais) ayant 2 champs (N° et Texte)

Sous quelle forme se présente la variable oDatatable ?

Olivier
0
Rejoignez-nous