Bonjour à tous,
J'ai un petit soucis lors d'un update d'une dataTable via l'adapter :
Je reçois cette exception :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Adapter.Update(maTable)
J'effectue actuellement un changement sur une application qui fonctionnait très bien avant et c'est lors de mes tests que je reçois cette exception.System.Data.VersionNotFoundException: Il n'y a pas de données Proposed auxquelles accéder.
à System.Data.DataRow.GetProposedRecordNo()
à System.Data.DataRow.GetRecordFromVersion(DataRowVersion version)
à System.Data.DataRow.get_Item(Int32 columnIndex, DataRowVersion version)
Ma table, pour mon test, ne contient qu'une seul ligne ajoutée et pour vérifier son état, j'ai tapé un petit bout de code :
et j'obtiens :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 For Each rowpat As DataRow In _table.Rows Debug.WriteLine("HasVersion Current : " & rowpat.HasVersion(DataRowVersion.Current)) Debug.WriteLine("HasVersion Default : " & rowpat.HasVersion(DataRowVersion.Default)) Debug.WriteLine("HasVersion Original : " & rowpat.HasVersion(DataRowVersion.Original)) Debug.WriteLine("HasVersion Proposed : " & rowpat.HasVersion(DataRowVersion.Proposed)) Debug.WriteLine("RowState : " & rowpat.RowState.ToString) Next
Donc l'erreur est cohérente car il n'y a effectivement pas d'état Proposed mais là où c'est incompréhensible, c'est qu'il n'est pas censé y en avoir pour une ligne AddedHasVersion Current : True
HasVersion Default : True
HasVersion Original : False
HasVersion Proposed : False
RowState : Added
En effet, si l'on va voir sur MSDN, la seul chose dont il ait besoin pour l'état Added est la version Default qui est Current :
Et je rempli les conditions.Default : The default row version for a particular row. The default row version for an Added, Modified, or Unchanged row is Current. The default row version for a Deleted row is Original. The default row version for a Detached row is Proposed.
En cherchant sur internet j'ai trouvé un correctif pour cette erreur mais il est pour le framework 1.1 et mon projet est sur le framework 4.0
Merci à tous pour votre attention en espérant que vous pourrez m'aiguiller pour corriger cette erreur.
Partager