Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    27

    [VB.NET] Modifica di una riga in una tabella con tableAdapter.update

    Salve a tutti,
    ho un quesito da porre alla vostra attenzione:

    devo aggiornare una riga di una tabella (db access) e lo faccio utilizzando il metodo update di un tableAdapter. Il problema è che la modifica non viene fatta sul db ma solo sul dataTable (in memoria). Il codice è il seguente:

    Dim newClientRow As dbDataSet.ClienteRow
    Me.ClienteTableAdapter.FillByCodice(Me.DbDataSet.C liente, Me.CodiceComboBox.Text)
    newClientRow = Me.DbDataSet.Cliente.Rows.Item(0)
    newClientRow.imponibile= 10
    Me.ClienteTableAdapter.Update(Me.DbDataSet.Cliente )

    Ho anche provato a passare al metodo update la datarow ma senza ottenere risultati

    Me.ClienteTableAdapter.Update(newClientRow)

    Ho quindi provato a creare una nuova riga, modificare il DataTable e fare update ma mi dice che il campo codice nn accetta valori null (codice è ovviamente la chiave della tabella Cliente)

    newClientRow.imponibile = 10
    Me.DbDataSet.Cliente.AddClienteRow(newClientRow)
    Me.ClienteTableAdapter.Update(Me.DbDataSet.Cliente )

    Mi sapreste spiegare il perchè? Come mai le modifiche non vengono riportate sul db.
    Grazie a tutti per l'attenzione

  2. #2
    Giorgio
    L'esperienza è il tipo di insegnante più difficile. Prima ti fa l'esame, e poi ti spiega la lezione. (Oscar Wilde)

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    27
    Probabilmente non mi sono spiegato bene
    Il db è già impostato su copia se più recente!
    L'applicazione è composta da molti form che fanno uso del tableAdapter.update e funzionano. In questo caso ho la necessità di modificare un campo di una singola riga di una tabella. Il problema è che il datatable viene modificato mentre il db no.
    Ho provato di tutto ma c'è qualcosa che mi sfugge.
    Sto impazzendo Vi prego aiutatemi!!

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    158
    codice:
    newClientRow.imponibile = 10
    Me.DbDataSet.Cliente.AddClienteRow(newClientRow)
    Me.ClienteTableAdapter.Update(Me.DbDataSet.Cliente)
    questo è giusto, ma il codicecliente nel database che tipo di campo è?
    E' un contatore?
    DISCLAIMER
    quello che sta scritto qui sopra è dettato esclusivamente dall'intuito, non da specifiche conoscenze tecniche. Usate queste informazioni a vostro rischio e pericolo (anhe sui server di produzione

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    27
    Ciao vaitrafra
    innanzitutto grazie per avermi risposto.
    Il campo codiceCliente è una stringa di testo. Comunque ho provato ad eseguire il codice di aggiornamento in un altro form e funziona. Probabilmente c'è qualcosa in questo form che lo fa fallire, o meglio, non gli fa fare il commit sul db. Ti spiego meglio la situazione:
    In questo form c'è una maschera che serve per immetere i dati in due tabelle correlate Fattura e Item_Fattura, in relazione uno a molti fra loro, il cliente deve subire l'aggiornamento sul campo imponibile che poi servirà per fare altre cose.
    Per effettuare l'aggiornamento sulle tabelle Fattura e Item_fattura ho usato la procedura illustrata nella documentazione di VS descritta in http://msdn2.microsoft.com/it-it/library/ms171933.aspx. Io ho copiato questo codice nel metodo che gestisce l'evento clic del del bottone di salvataggio della fattura e vi ho inserito il codice per l'aggiornamento del cliente.
    Non capisco che relazione possa esistere fra le due cose comunque resta il fatto che l'aggiornamento del campo imponibile avviene solo in memoria e non viene fatto sul db. Sai da cosa potrebbe dipendere?
    Attendo notizie.
    Ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.