Aggiornare sito web tramite web service

giovedì 09 aprile 2009 - 12.11

donatop Profilo | Newbie

Salve a tutti,
sn nuovo del forum e vorrei esporvi un mio problema.. penso banale, trito e ritrito ma di cui ad oggi nn ho trovato nessuna soluzione soddisfacente..

ho un applicativo, c# con db access tramite la quale gestisco dei prodotti da banco e sto ora realizzando un sito web che ha lo stesso db.. il problema è che ho necessità di aggiornare il db del sito ogni volta che faccio delle modifiche al db locale (ad esempio al prezzo di un prodotto)
ho pensato ke la soluzione migliore sia quella tramite web service, ma nn so come implementare la cosa?

qualcuno potrebbe gentilmente istruirmi a riguardo?

un grazie sincero e a quanti mi aiuteranno

Jeremy Profilo | Guru

Ciao Donato.
>ho pensato ke la soluzione migliore sia quella tramite web service, ma nn so come implementare la cosa?
Hai già prodotto qualcosa sulla quale si possa ragionare?? O devi partire da zero???

Nel primo caso dai qualche indicazione riguardo a quanto hai già prodotto e vediamo di ragionarci insieme.

Nel secondo caso,invece, ti consiglio di studiarti prima un pò la cosa su qualche testo .... giusto da avere almeno le basi.
O quanto meno ti consiglio di fare domande mirate su argomenti più specifici.

In ogni caso, rimango a disposizione per ulteriori info.

Facci sapere...
Ciao.

donatop Profilo | Newbie

Ciao Jeremy
sfortunatamente devo iniziare da zero.. ciò ke ho già implementato sono i due db in access il primo in locale che contiene praticamente una tabella di prodotti con i relativi dati (ID, NOME, DESCRIZIONE, PREZZO) e il secondo sul server del sito che contiene la stessa tabella.. ora ciò ke io vorrei fare è realizzare una funzione che cliccando sul buttone AGGIORNA SITO dal programma locale (winform in C# net 3.5) mi deve aggiornare il db del sito (asp.net 3.5)

documentandomi qua e la e trovato sostanzialmente due soluzioni tramite web service
1) cliccando sul bottone inserisco tutta la tabella in un dataset ke do in input al webmethod del webservice il quale poi prenderà questo dataset per aggiornare db del sito
2) cliccando sul bottone creo un tracciato (file txt) in cui inserisco tutti i record della tabella e lo butto in una cartella del sito web il quale prenderà questo file per aggiornare il suo db

ho scartato altre soluzioni come quelle di inviare tutto il db tramite ftp (xkè è il db è 100 mb)
bene ora vorrei sapere quale è più conveniente implementare o se magari ci sn altre soluzioni migliori...
inoltre mi chiedevo se è possibile fare direttamente delle query nel webmethod direttamente sul db locale..

dal momento che tu sei in gamba e conosci già la cosa implementerò ciò ke mi consiglierai poi posterò la soluzione da me realizzata per migliorarla..

grazie x l'attenzione e soprattutto per l'interessamento

ps: hai x caso anke qualke testo da consigliarmi??

Jeremy Profilo | Guru

Ciao Donato.
>sfortunatamente devo iniziare da zero.. ciò ke ho già implementato
>sono i due db in access il primo in locale che contiene praticamente
>una tabella di prodotti con i relativi dati
Il fatto di *voler* utilizzare un Db locale ed uno remoto, credo sia un problema....nel senso che, temo possano esserci dei conflitti o dei *pasticci* sui campi contatore di uno e dell'altro.

Ovviamente, dipende dal numero di utenti che devono accedere/aggiornare i dati presenti su quello remoto.
Da quel che ho capito, se si tratta di una sola tabella, non ci dovrebbero essere questo genere di problemi, ma in futuro?....

Riguardo alle soluzioni che hai trovato
>1) cliccando sul bottone inserisco tutta la tabella in un dataset
>ke do in input al webmethod del webservice il quale poi prenderà
>questo dataset per aggiornare db del sito

>2) cliccando sul bottone creo un tracciato (file txt) in cui
>inserisco tutti i record della tabella e lo butto in una cartella
>del sito web il quale prenderà questo file per aggiornare il
>suo db
La soluzione migliore ritengo sia la prima, in quanto, sarebbe, sostanzialmente, come avere una copia della tabella del Db locale, sul sito e poter quindi fare un Update semplicemente facendo *sbattere* il DataAdapter a capire quali record deve aggiornare,modificare o cancellare.

Rimango comunque a disposizione per ulteriori info.

Facci sapere....
Ciao

donatop Profilo | Newbie

Ciaro Jeremy,
ho fatto come mi hai consigliato.. ma forse ho sbagliato qualcosa in quanto ho tempi molto lunghi di aggiornamento del db.. ed inoltre ogni tanto mi esce un errore: httpruntime max requestlengh exceeded... o timeout exceeded... o qualcosa del genere...

ti posto intanto il codice del ws:
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra


l'errore penso stia nel fatto ke faccio direttamente delle query in access ?? come potrei fare in alternativa.. dimenticavo anke di dirti ke il db contiene e conterrà in media circa 20.000 record.. se il probl risiede in questo pazienza.. (vuol dire ke gli aggiornamenti verranno effettuati la notte )

inoltre:
[quote]
Il fatto di *voler* utilizzare un Db locale ed uno remoto, credo sia un problema....nel senso che, temo possano esserci dei conflitti o dei *pasticci* sui campi contatore di uno e dell'altro.
[/quote]

è x caso possibile utilizzare sl il db locale e far a meno di quello remoto?? anke io avevo pensato a una cosa del genere ma nella mia limitatezza ho pensato nn fattibile..
tuttavia nn possono esserci conflitti xkè il db remoto potrà e dovrà essere aggiornato solo da locale tramite il ws che sto cercando di implementare.. (chissà.. )

un grazie immenso x le dritte ke mi stai dando
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