Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Datatable Update

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2005
    Messaggi
    139

    Datatable Update

    Mi succede che ho una datatable che manualmente implementatata di row per poi alla fine andare a scrivere sul DB all'interno di una transaction.
    Però tramite la rappresentazione di un datagrid se un elemento è stato scritto male o si vuole modificare l'utente può farlo tranquillamente.
    Il problema è che quando faccio da.update trova il rowstate in Modified e quindi parte l'UpdateCOmmand su qualcosa che non c'è.
    COme posso fare per evitare questo visto che non posso modificare lo stato della riga del datatable?

  2. #2
    Scusa ma non ci ho capito quasi niente. Puoi spiegarti meglio? (es. la "transaction" non mi sembra centri col discorso; cosa significa "...succede che ho una datatable che manualmente implementatata di row..."?)
    Saluti a tutti
    Riccardo

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116

    Re: Datatable Update

    Originariamente inviato da temerario
    Mi succede che ho una datatable che manualmente implementatata di row per poi alla fine andare a scrivere sul DB all'interno di una transaction.
    Però tramite la rappresentazione di un datagrid se un elemento è stato scritto male o si vuole modificare l'utente può farlo tranquillamente.
    Il problema è che quando faccio da.update trova il rowstate in Modified e quindi parte l'UpdateCOmmand su qualcosa che non c'è.
    COme posso fare per evitare questo visto che non posso modificare lo stato della riga del datatable?
    Mi ricorda tanto le mie povere traduzioni dal latino Non credevo che qualcuno riuscisse a fare peggio con l'italiano
    Pietro

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2005
    Messaggi
    139
    Scusate ma ero molto nervoso.

    Cerco di spiegarmi meglio....se riesco

    Tramite una form inserisco varie row in una datatable.

    Successivamente all'evento di un pulsante tutta la datatable viene inserita nel db. Fin qui tutto ok.

    Se però una delle righe dopo averla inserita nella datatable (non nel db) la modifico, il rowstate di quella row risulta modified e quindi in fase di inserimento nel db il dataadapter invece di utilizzare l'insertcommand utilizzerà l'updatecommand.
    Qui chiaramente mi va in errore in quanto non c'è nessuna riga da modificare nel db.

    Spero di essermi spiegato meglio e che il mio problema sia chiaro.

    Saluti

  5. #5
    Sono vari i modi per affrontare una situazione del genere. La funzione Update del dataadapter verifica appunto il rowstate della riga rispetto a quando e' stata caricata dal db (original) da come e' adesso (current). Nel tuo caso non esiste la versione original.
    Una possibilita' e' quella di evitare la funzione update e fare un ciclo su tutte le righe e all'interno del ciclo chiamare direttamente un command per effettuare l'inserimento (dopotutto e' praticamente lo stesso lavoro che fa il dataadapter).
    Se vuoi usare il dataadapter, puoi fare affidamento sul rowstate per passare alla funzione update solo le righe che sono added es.
    codice:
    dap.Update(tuadatatable.GetChanges(DataRowState.Added))
    e a questo punto rimarresti con le righe modified che puoi gestire usando un ciclo e un command che inserisce le righe nel db.
    Oppure altra possibilita', potrebbe essere quella di usare la funzione update per tutte le righe ma impostando i command del dataadapter in modo da far utilizzare delle storedprocedure che appunto possono verificare se il record esiste (procedendo cosi all'update) o se non esiste (procedendo invece con un insert).
    Saluti a tutti
    Riccardo

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2005
    Messaggi
    139
    grazie riccardo.
    Ora ci provo

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.