Datatable.acceptchanges () valide les données dans la table
Datatable.acceptchanges s'engage données de la table...signifie
il va insérer les données dans la table ..ou datatable?
source d'informationauteur SmartestVEGA
Vous devez vous connecter pour publier un commentaire.
Le but de AcceptChanges (), c'est laisser la DataTable savoir que ses données ont été enregistrées dans la base de données. Tous des datarow dans le DataTable ont leur ligne.RowState ensemble de DataRowState.Inchangé.
Il n'a pas d'enregistrer les données dans la base de données. Ce qui est fait séparément.
Voici la la documentation:
De sorte que votre base de données n'est pas affectée.
N'affecte que la datatable. Pas toute la table DB.
Dans mon cas, il a été causé par l'auto-numéro de champ dans la base de données, je vous suggère ci-dessous
appel de mise à jour methof de la carte de données
appel de mise à jour
///pour auto numéro de colonne
appel acceptchanges de datatable
Puis re-remplir le tableau par oledbadapter. Si u n'a pas besoin de champ numéroauto, ne pas ajouter qu'en tant que paramètre dans deletecommand de oledbadapter
Certaines personnes choisissent pour manipuler les données dans une table de données, des exemples sont la suppression de certaines lignes ou la pendaison de tous les noms en majuscules. retrait
NULL
's et ainsi de suite.AcceptChanges
juste enregistre ces modifications à la datatable.Si vous souhaitez valider les modifications, vous devez utiliser un dataadaptor ou utiliser une autre méthode pour obtenir les données de la des datarow dans la datatable et valider les modifications.
D'accord - Si j'ai ce droit, appelant explicitement un DT.CommitChanges() permet de définir toutes les lignes n'ont pas changé. Et si c'est vrai, lors de l'appel de DA.Mise à JOUR(DT), toutes les modifications apportées à la datatable sera ignoré.
Il semble donc, vous devez seulement appeler DT.CommitChanges() pour les changements que vous NE voulez PAS atteindre la base de données.
Par conséquent, les changements NE se rendre à l' .NET datatable, quel que soit le CommitChanges appel, mais à obtenir des changements à la table de base de données, ne l'appelez pas un CommitChanges avant de procéder à la DA.La mise à jour. Et bien sûr, ce qui implique que DA.Mise à jour doit être appelée pour poussé les modifications apportées à la base de données...