Lettura e aggiornamento di un record access in c#: tanto stupido che n...

giovedì 11 dicembre 2008 - 01.22

ciuky Profilo | Newbie

ciattutti...
ammetto la mia "ruggine" in c# e nella programmazione in generale ma purtroppo ho cambiato tipo di lavoro, ma la passione rimane e purtroppo se la molli per un pò magari non perdi i "rudimenti" ma perdi sicuramente i dettagli che ti fanno perdere taaaaaanto tempo.

La mia domanda credo sia semplicissima ma ho perso parecchie ore sulla rete, su forum, sull'msde e affini senza trovare una soluzione.
In pratica io non debbo fare altro che un loop su una tabella access, leggere un record, aggiornarne un valore in colonna e basta.

sembra tanto semplice..ma io non ci riesco. o meglio, mi sono perso nei meandri dei vari apdater, dataset e datatable che a quest'ora (ore 1.20 di notte) dopo circa 4 ore di smadonnamenti mi sono arreso ...e non mi resta che rivolgermi a voi.

Non voglio pappa pronta..voglio solo capire...o magari un link dove capire.

Per quello che ho capito non posso fare tutto contestualmente ma debbo passare per forza da due "processi" differenti...ma voglio solo conferma.

chi mi aiuta?

cià

Red

alx_81 Profilo | Guru

>ciattutti...
ciao

>Non voglio pappa pronta..voglio solo capire...o magari un link
>dove capire.
>Per quello che ho capito non posso fare tutto contestualmente
>ma debbo passare per forza da due "processi" differenti...ma
>voglio solo conferma.
>
>chi mi aiuta?
Allora posso dirti un paio di passi che seguirei personalmente senza approfondire troppo l'argomento. Se lo facessi eviterei discorsi di dataset, datatable e quant'altro..

1) crei le due query con le parametriche:
- la select che prende tutto il resultset
- l'update per chiave

2) Utilizzi OledbCommand, OledbConnection ed OledbDataAdapter per riempire un datatable che sarà il contenitore della select. Userai il metodo Fill dell'adapter.

3) Cicli il datatable e per ogni riga, per chiave, lanci l'update con un ExecuteNonQuery.

Eccoti le reference:

OledbConnection Class
http://msdn.microsoft.com/it-it/library/system.data.oledb.oledbconnection(VS.80).aspx

Oledbcommand Class
http://msdn.microsoft.com/it-it/library/system.data.oledb.oledbcommand(VS.80).aspx

OledbDataAdapter
http://msdn.microsoft.com/it-it/library/system.data.oledb.oledbdataadapter(VS.80).aspx

Metodo Fill
http://msdn.microsoft.com/en-us/library/system.data.oledb.oledbdataadapter.fill.aspx

OledbCommand.ExecuteNonQuery
http://msdn.microsoft.com/it-it/library/system.data.oledb.oledbcommand.executenonquery(VS.80).aspx
--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

ciuky Profilo | Newbie

Grazie Alessandro per la risposta, sei stato gentilissimo.

Tutto molto chiaro.

In effetti la lettura di un dataset attraverso query è cosa che avevo già fatto, il problema per me è l'update e non pensavo fosse necessario obbligatoriamente utilizzare una query di Update.
Farò come da te suggerito.

grazie mille anche per le reference....davvero prezioso il tuo aiuto.

a presto

red

alx_81 Profilo | Guru

>Grazie Alessandro per la risposta, sei stato gentilissimo.
accetta il post così chiudiamo il thread
--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5