ciao, ho fatto un piccolo web service che contiene un webmethod che fà una query su una base dati e che ritorna un dataset.
Il web service funziona perfettamente se lo lancio da browser.. ritornandomi i nodi xml con il risultato della query.
Adesso voglio richiamare questo webservice su una applicazione (ho provato winform, webform e device application con lo stesso risultato) ed ho dato anche una sbirciatina su internet per vedere se e dove sbagliavo.. ma mi sono accorto che non stò sbagliando.. o che cmq anche su tanti altri esempi la procedura è praticamente uguale alla mia..
Ecco il webmethod:
creo una applicazione windows form con vs 2005 e aggiungo una webreference all'indirizzo del webservice.codice:public DataSet ReturnData() { OleDbConnection cn = new OleDbConnection("Stringa di connessione"); OleDbDataAdapter adp = new OleDbDataAdapter("query",cn); DataSet ds = new DataSet(); adp.Fill(ds,"all"); return ds; }
sulla riga:codice:using namespace_applicazione.nome_webservice; ... private void pulsante_Click(object sender, EventArgs e) { nome_webservice.classe_webservice AAAA = new classe_webservice(); DataSet ds = AAAA.ReturnData(); }
mi viene ritornato un errore di conversione di tipi:codice:DataSet ds = AAAA.ReturnData();
questo: "ReturnDataResponseReturnDataResult"Cannot implicitly convert type 'namespace_applicazione.nome_webservice.ReturnData ResponseReturnDataResult' to 'System.Data.DataSet'
mi ha incuriosito e sono andato a vedere cos'era nel file 'Reference.cs' creato automaticamente da visual studio al momento dell'aggiunta della web reference..
a parte il fatto che la parola "ReturnData" è il nome del metodo che ritorna il dataset.. non riesco proprio a capire di cosa si tratti..
ecco cosa vedo nel file 'Reference.cs' (ovviamente non c'è solo questo metodo)
che cavolo è questo tipo ReturnDataResponseReturnDataResult?codice:public ReturnDataResponseReturnDataResult ReturnData() { object[] results = this.Invoke("ReturnData", new object[0]); return ((ReturnDataResponseReturnDataResult)(results[0])); }
Grazie![]()


Rispondi quotando
