Citation:
msdn :
..., l'instruction UPDATE ou DELETE générée automatiquement contient une clause WHERE spécifiant qu'une ligne n'est mise à jour que si elle contient toutes les valeurs d'origine et n'a pas été supprimée de la source de données. Cela permet d'éviter que de nouvelles données ne soient remplacées. Quand une mise à jour générée automatiquement tente de mettre à jour une ligne qui a été supprimée ou qui ne contient pas les valeurs d'origine qui se trouvent dans l'objet DataSet, la commande n'affecte pas d'enregistrement et un objet DBConcurrencyException est levé.
Si vous souhaitez que les instructions UPDATE ou DELETE soient exécutées indépendamment des valeurs d'origine, vous devez explicitement définir UpdateCommand pour le DataAdapter et ne pas compter sur la génération automatique de commandes.
Donc tu n'est pas obligé faire une gestion manuelle avec une colonne horodateur ni avec une clause where dans le DataAdapter (pour comparer les valeurs modifiées au originales).