AcceptChanges / RowUpdated
Hejsa.Hvis jeg håndterer DataAdapter.RowUpdated hændelsen, og i denne forsøger at kalde AcceptChanges på den row, som netop er blevet opdateret af DataAdapter'en, så slår det ikke igennem på mit dataset. Se her:
'Et sted i min forms kode køres følgende kode:
'(dataadapteren ER sat op, og fungerer korrekt)
Dim myTable As DataTable
myTable = myDataset.Tables("Tabel1")
myDataAdapter.Update(myTable)
'Et andet sted håndterer jeg så RowUpdated hændelsen, som
'kaldes for hver row der opdateres af DataAdapter.Update metoden:
Public Sub myDataAdapter_RowUpdated(ByVal sender As Object, ByVal e As SqlRowUpdatedEventArgs) Handles myDataAdapter.RowUpdated
'dette kald har ingen effekt?
e.Row.AcceptChanges()
'derimod fungerer dette helt fint (der er egentlig tale om den samme row):
myDataset.Tables("Tabel1").Rows(0).AcceptChanges()
End Sub
I ovenstående kode kan I se, at hvis jeg kalder AcceptChanges på e.Row, så sker der ikke noget, men hvis jeg kalder AcceptChanges på samme row, blot hvor jeg tilgår row'en gennem DataSet'et, så virker det fint.
Jeg prøvede i immediate vinduet at evaluere følgende udtryk:
e.Row Is (yDataset.Tables("Tabel1").Rows(0)
... og det returnerede False. Det vil sige, at jeg har faktisk ikke har fat i den egentlig DataRow, som også findes i DataSet'et (selvom det burde være den samme). Det giver jo derfor også mening, at AcceptChanges ikke slår igennem på DataSet'et. Men er der nogen der ved hvorfor de ikke er en og samme row? Og hvordan skal jeg så kalde AcceptChanges på min DataRow?
Håber I forstår mit spørgsmål. Ellers så spørg løs! :)
På forhånd tak.
- Mikkel