SqlParameters [Résolu]

Signaler
Messages postés
127
Date d'inscription
vendredi 21 janvier 2005
Statut
Membre
Dernière intervention
29 mai 2014
-
guilleto
Messages postés
256
Date d'inscription
jeudi 23 octobre 2003
Statut
Membre
Dernière intervention
20 mars 2013
-
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


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.
Messages postés
127
Date d'inscription
vendredi 21 janvier 2005
Statut
Membre
Dernière intervention
29 mai 2014

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!
Messages postés
256
Date d'inscription
jeudi 23 octobre 2003
Statut
Membre
Dernière intervention
20 mars 2013
1
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
Messages postés
127
Date d'inscription
vendredi 21 janvier 2005
Statut
Membre
Dernière intervention
29 mai 2014

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!
Messages postés
256
Date d'inscription
jeudi 23 octobre 2003
Statut
Membre
Dernière intervention
20 mars 2013
1
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
Messages postés
127
Date d'inscription
vendredi 21 janvier 2005
Statut
Membre
Dernière intervention
29 mai 2014

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!
Messages postés
256
Date d'inscription
jeudi 23 octobre 2003
Statut
Membre
Dernière intervention
20 mars 2013
1
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