Ciao a tutti,
non mi spiego il comportamento del seguente WebMethod:
codice:
codice:[WebMethod] public DataSet Neigh() { DataSet v = new DataSet("Vicini"); String connString = cs.ConnectionString; SqlConnection conn = new SqlConnection(connString); try { conn.Open(); SqlCommand command = new SqlCommand("SELECT COUNT(*) FROM Vicini", conn); Int32 x = (Int32)command.ExecuteScalar(); command = new SqlCommand("Select * from Vicini", conn); SqlDataAdapter adapter = new SqlDataAdapter(command); adapter.Fill(v); Globals.Vicini = v; if (v.Tables[0].Rows.Count != 0 && !v.Tables[0].Rows[0][0].ToString().Trim(" \n".ToCharArray()).Equals("http://localhost/SRnode0")) { remoteservice.Url = v.Tables[0].Rows[0][0].ToString().Trim(" \n".ToCharArray()) + "/WS.asmx"; v = remoteservice.Neigh(); Globals.Merge(v); } } catch (Exception ex) { throw ex; } conn.Close(); return Globals.Vicini; }
In particolare, come si vede dal codice, all'interno dell'if richiamo lo stesso WebMethod su un altro indirizzo. Eseguendo il debug questo riempie Globals.Vicini con il DataSet risultante dalla Select precedente, non entra nel blocco if perchè non ci deve entrare, e restituisce Globals.Vicini.
Al return nel chiamante però mi ritrovo un DataSet null che causa eccezione quando richiamo Globals.Merge sui miei vicini.
A cosa può essere dovuto?
Per favore AIUTATEMIIII!!!
PS.perdonate il post duplicato nella sezione ASP.NET, ma ho sbagliato come si fa a toglierlo?