none
Capire l'aggiornamento del Db con tabelle in binding RRS feed

  • Domanda

  • Ciao a tutti.

    Mi trovo nella condizione di dover aggiornare il Db dal programma che ho sviluppato, ma prima di farlo ho pensato fosse meglio verificare, o meglio, cercare di capire come funziona il meccanismo. Per questo ho creato un esercizio semplice costituito da un Form contenente  due DataGrid alle quali vengono associate le due tabelle (Tabella1 e Tabella2).

    Le due sono così strutturate:

    Tabella1: KeyTab1, Tab1Campo1, Tab1Campo2, Tab1Campo3, Tab1Campo4

    Tabella2: KeyTab2, KeyTab1, Tab2Campo1, Tab2Campo2, Tab2Campo3

    il legame è, ovviamente, con KeyTab1.

    A questo punto lancio il programma e compilo le DGV e udo il bottone di aggiornamento del BindingNavigator per aggiornare il Db. Apro il Db e controllo. I dati sono stati trasportati dalle DGV al Db, tutto corretto, ma i valori delle chiavi (KeyTab1 e KeyTab2) non sono stati aggiornati sulle DGV, in pratica non è avvenuto il refresh. Ho provato a forzarlo ma non cambia nulla.

    Questo è solo il primo problema, perchè chiudendo il programma e rilanciandolo mi aspettavo di trovare le DGV compilate con i valori inseriti pecedentemente, ma mi sono state presentate vuote, anche qui, probabilmente, un problema di refresh.

    Cosa posso fare per attivare questi sincronismi e poter proseguire modificando e aggiungendo dati per mettere a punto il tutto e trasportarlo sul programma reale?

    Allego il codice e la struttura di legame utilizzati.

    Public Class Form1 Private Sub Tabella1BindingNavigatorSaveItem_Click(sender As System.Object, e As System.EventArgs) Handles _ Tabella1BindingNavigatorSaveItem.Click Me.Validate() Me.Tabella1BindingSource.EndEdit() Me.Tabella2BindingSource.EndEdit() Me.Tabella1Tabella2BindingSource.EndEdit() Me.TableAdapterManager.UpdateAll(Me.ProvaScritturaDataSet) End Sub Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load 'TODO: questa riga di codice carica i dati nella tabella 'ProvaScritturaDataSet.Tabella2'. È possibile spostarla o rimuoverla se necessario. Me.Tabella2TableAdapter.Fill(Me.ProvaScritturaDataSet.Tabella2) 'TODO: questa riga di codice carica i dati nella tabella 'ProvaScritturaDataSet.Tabella1'. È possibile spostarla o rimuoverla se necessario. Me.Tabella1TableAdapter.Fill(Me.ProvaScritturaDataSet.Tabella1) End Sub End Class


    Grazie in anticipo per un vostro contributo,

    matylda

    martedì 4 giugno 2013 16:19