Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

[vb.net] database update niet gereflecteerd in dataset

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben asp.net developer, en moet nog een beetje wennen aan windows forms programmeren. Stomme vraag waarschijnlijk, maar ik kom er niet uit...

Ik ben een applicatie aan het schrijven. Ik wil zoveel mogelijk gebruikmaken van tableadapters om updates in database te doen.

Ik heb 2 tabellen in dataset.
Tabel 1 is "gewone" table genaamd tblTransacties
Tabel 2 is join tussen tblTransacties en andere tabel genaamd joinTransactie_TransactieType

Tabel 1 kan ik updaten met een tableadapter, Tabel 2 niet. Maar tabel 2 bevat zelfde data als Tabel 1, maar is gejoined met andere Tabel.

Als ik nu met een TableAdapter wijzigingen doe in Tabel 1, dan worden deze niet gereflecteerd in Tabel 2... Maar dat moet ik dus wel hebben... Komt het erop neer dat ik opnieuw Tabel 2 moet vullen?

Onderstaande is in het kort de code die ik gebruik:

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Me.taJoinTransactie_TransactieTypeTableAdapter.Fill(Me.DsMain.joinTransactie_TransactieType)
End Sub

Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
  taTransactie.FillByTransactieID(DsMain.tblTransactie, rowJoinTransactie_TransactieType.TransactieID)
  Dim rowTransactie As dsMain.tblTransactieRow = DsMain.tblTransactie.FindByTransactieID(rowJoinTransactie_TransactieType.TransactieID)

  rowTransactie.Bedrag = fldTransactieBedrag.Text
  taTransactie.Update(DsMain.tblTransactie)

  DsMain.joinTransactie_TransactieType.AcceptChanges() ???

  'Ik krijg mijn wijzigingen niet in DsMain.joinTransactie_TransactieType, hoewel 
  'DsMain.joinTransactie_TransactieType en DsMain.tblTransactie beiden
  '(nagenoeg) dezelfde data gebruiken
End Sub

  • Eriksk
  • Registratie: December 2003
  • Niet online
Er is geen verschil tussen WinForms en WebForms hierin, dus dat maakt weinig uit ;)

Ik snap niet echt het nut van deze constructie, maar die zal er ongetwijfeld zijn als ze ook dezelfde structuur hebben. Aangezien er geen relatie ligt tussen de twee tables, zal er ook nooit iets veranderen in table2 als er in table1 wat verandert.

Elke wijziging in Table1, moet je dus ook in Table2 doen. Op Table1 voer je vervolgens een update uit en op table2 roep je acceptchanges aan.

Hebben ze dezelfde structuur? Dan zou je wellicht ook met het Copy-statement kunnen werken na de update.

Zoiets?

Verwijderd

Topicstarter
Ja... Het is eigenlijk ook vrij logisch. Ik had gehoopt dat ik wijzigingen in 1 datatable met aantal zelfde kolommen als andere datatable wel had kunnen "reflecteren".

Jammer dan; dan maar een extra fill doen.

  • Eriksk
  • Registratie: December 2003
  • Niet online
met zelfde aantal kolommen? Ook dezelfde structuur?
Zo ja:
Waarom gebruik je dan niet dezelfde datatable?
Gebruik anders de copy methode...


Heb er zelf nooit gebruik van gemaakt, maar kun je niet gebruik maken van de events die een dataset biedt...