Bonjour,
Je me pose une question concernant la définition de l'UpdateCommand sur un DataAdapter pour que la mise à jour en base ne concerne que les champs modifiés et non tous les champs de ma table (ce qui est bien fait si le UpdateCommand est généré par le DbCommandBuilder)
Exemple : j'ai une table contenant 5 colonnes dont une colonne clé. Je modifie uniquement la colonne 2.
Si je définis l'UpdateCommand par un CommandBuilder, la requête lancé est la suivante :
UPDATE TABLE SET COLONNE_2=@COLONNE_2 WHERE CLE1=@CLE1
Elle ne modifie bien que la colonne 2.
Si je définis l'UpdateCommand directement à la main, la requête lancé est alors la suivante :
UPDATE TABLE SET COLONNE_1=@COLONNE_1,COLONNE_2=@COLONNE_2,COLONNE_3=@COLONNE_3,COLONNE_4=@COLONNE_4 WHERE CLE1=@CLE1
Toutes mes colonnes sont réécrites dans la base, et je perds donc en performance sur des grosses tables.
J'espère que je me bien suis fait comprendre et que l'un d'entre vous pourra m'aider.
Merci d'avance.
Partager