Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di polinn
    Registrato dal
    Oct 2003
    Messaggi
    186

    ADO.NET ... problemi con IDs...

    Ciao!
    Io sto lavorando su di un progetto Windows-form che trasferisce i dati da un DB-Access ad uno SQL. Lavoro con C# e ADO.NET in maniera DISCONNESSA.

    Il mio problema è che quando aggiungo una riga al dataset SQL e, tramite il DataAdapter lancio l'update non so come farmi restituire l'ID inserito (è un campo auto-incrementante)... l'unica soluzione che ho trovato è stata quella di ricaricare tutto il DataSet
    Non c'è un modo per far sì che, al massimo, debba ricaricare le righe modificate/inserite?

    Grazie!!
    Il mondo è una DEMO...
    ...e come tale ne subisce l'effetto!

  2. #2

    Re: ADO.NET ... problemi con IDs...

    Originariamente inviato da polinn
    Non c'è un modo per far sì che, al massimo, debba ricaricare le righe modificate/inserite?
    prima di effettuare l'update puoi creare una dataview sulla datatable per poi impostarne la proprieta' rowstatefilter in modo da vedere le righe modificate, cancellate, inserite (modified, deleted ecc.).
    Saluti a tutti
    Riccardo

  3. #3
    Utente di HTML.it L'avatar di polinn
    Registrato dal
    Oct 2003
    Messaggi
    186

    Re: Re: ADO.NET ... problemi con IDs...

    Originariamente inviato da riccardone
    prima di effettuare l'update puoi creare una dataview sulla datatable per poi impostarne la proprieta' rowstatefilter in modo da vedere le righe modificate, cancellate, inserite (modified, deleted ecc.).
    Ma anche sapendo quali sono le righe inserite/modificate... come faccio a fare il merge dei dati? Come faccio ad aggiornare i DataSet solo per determinate righe e lasciare inalterate le altre in modo da fare una cosa lepre?

    Per il momento ho risolto con un algoritmo che valuta se i dataset debbano essere ricaricati e se lo sono vengono ricaricati in toto...
    Tra l'altro ho notato che non basta il metodo Fill del DataAdapter per ricaricare i dati.. ho dovuto istanziare nuovamente i DataAdapter ed in più rilanciare i comandBuilder... è normale?

    'azie
    Il mondo è una DEMO...
    ...e come tale ne subisce l'effetto!

  4. #4

    Re: Re: Re: ADO.NET ... problemi con IDs...

    Originariamente inviato da polinn
    Ma anche sapendo quali sono le righe inserite/modificate... come faccio a fare il merge dei dati?
    C'e' il db, e c'e' la rappresentazione in memoria del db cioe' il dataset. In mezzo c'e' il dataadapter.
    L'utente modifica il dataset. Quando preme sul pulsante "aggiorna il db" chiami il metodo update del dataadapter che effettua l'aggiornamento nel db delle righe modificate (inserite, eliminate, modificate) e mantiene in memoria la fotografia del database.
    Come faccio ad aggiornare i DataSet solo per determinate righe e lasciare inalterate le altre in modo da fare una cosa lepre? Per il momento ho risolto con un algoritmo che valuta se i dataset debbano essere ricaricati e se lo sono vengono ricaricati in toto...
    per capirci, potresti utilizzare degli oggetti command. Uno per l'update delle righe, uno per l'insert e uno per eliminarle. Ognuno dei command avra' quindi la query sql necessaria. Il dataadapter e' un oggetto che ti permette di utilizzare automaticamente e senza doverli chiamare distintamente tutti e tre i command suddetti. Basta infatti che in fase di debug una volta istanziato il datadapter leggi nelle sue proprieta (selectcommand, updatecommand, deletecommand). Quindi quando chiami l'update del datadapter lui fa quello che chiedi tu in automatico.
    Tra l'altro ho notato che non basta il metodo Fill del DataAdapter per ricaricare i dati.. ho dovuto istanziare nuovamente i DataAdapter ed in più rilanciare i comandBuilder... è normale?
    Quando chiami il metodo fill, esegui la query contenuta nella proprieta' selectcommand del datadapter quindi puoi andartela a leggere per capire meglio quello che fa. Il commandbuilder e' solo un oggetto che ti aiuta a valorizzare i vari command (delete, update, insert) del dataadapter partendo dalla query di selezione (selectcommand).
    Saluti a tutti
    Riccardo

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.