Newsgroup: it.comp.lang.visual-basic
Titolo: [.NET] Dataset...'sto wizard

Ciao a tutti,
mi sono accorto che il wizard di 
VB.NET
 per aggiornare un database fa più o
meno così:
dsChanges=DS.GetChanges     ' DS è il dataset su cui si sta lavorando
DA.Update(dsChanged)     'Supponiamo che ci sia solo un DataAdapter
DS.Merge(dsChanged)
DS.AcceptChanges
Perchè di tutto ciò?
Ipotesi:
1 ) *Prestazioni*  Si velocizza il tutto poichè si opera con un DataSet
contenente solo le righe modificate.
2 ) *Non lo so*  Pensavo che anche un semplice DA.Update(DS) lavorasse solo
sulle righe con RowState<>Original, lasciando in pace le altre.
3 ) *Dite la vostra*

"Luca di Cerneglons" <pr...@scriver.mi> ha scritto nel messaggio
news:Baqwa.238$lK4....@twister1.libero.it...

Il wizard lo uso come studio;
costruire del codice, almeno a questo livello, e non capire vuol dire
trovarsi in difficoltà alla prima occasione.
Il wizard è ottimo per vedere alcune delle possibilità di utilizzo del
codice
e con l'help verificare le funzionalità delle classi e dei relativi metodi.
Il cidice proposto dal wizard andrebbe stressato, es:
valori con apicetti, virgole, punti, checkbox, ecc., sia in caricamento,
inserimento, modifica, delete.
giuseppeD

 ha scritto nel messaggio
news:UHrwa.169864$K35.3...@news2.tin.it...
::
: Il wizard lo uso come studio;
Pure io, altrimenti non avrei posto la questione e avrei vontinuato ad usare
DA.Update(DS) come ho sempre fatto.
: costruire del codice, almeno a questo livello, e non capire vuol dire
: trovarsi in difficoltà alla prima occasione.
Infatti il mio post chiedeva solo alcune delucadazioni, non ho parlato di
difficoltà.
: Il wizard è ottimo per vedere alcune delle possibilità di utilizzo del
: codice
: e con l'help verificare le funzionalità delle classi e dei relativi
metodi.
: Il cidice proposto dal wizard andrebbe stressato, es:
: valori con apicetti, virgole, punti, checkbox, ecc., sia in caricamento,
: inserimento, modifica, delete.
Sono d'accordo.
Comunque non mi hai risposto :-)
Ciao, Luca.

 stored procedure costruita
exec sp_executesql N'UPDATE tblTariffeAccessori SET Descrizione = @p1 WHERE
( (CodiceTariffaAccessori = @p2) AND
((Descrizione IS NULL AND @p3 IS NULL) OR (Descrizione = @p4)) )', N'@p1
varchar(12),@p2 char(1),@p3 varchar(15),@p4
varchar(15)', @p1 = 'A DIMENSIONE', @p2 = 'D', @p3 = 'A DIMENSIONE HH', @p4
= 'A DIMENSIONE HH'
'A DIMENSIONE HH' > valore originale
'A DIMENSIONE' > Valore modificato
Nella stored è presente solo il record da modificare.
che sia veloce ho i miei dubbi; i valori originali necessari per localizzare
il record da modificare sono ripetuti;
che dia la possibilità di eseguire dei controlli,
es. per verificare se i record sono stati modificati da altro utente, prima
di eseguire l'update, questo si; ma il discorso si allunga .
giuseppeD

Grazie per la risposta,
la logica dell' UpdateCommand infatti è un po' contorta con tutte quelle
combinazioni di OR e AND incrociate su tutti i parametri...
Non sono un grande esperto di SQL, quindi preferisco comunque appoggiarmi
alla sintassi costruita cal CommandBuilder...nel bene e nel male !!!
Ad ogni modo farò delle prove con e senza passare attraverso il DataSet
contenente solo le righe modificate...chissà cosa ne esce...
Grazie ancora!
Ciao, Luca.