Direi che può andare bene, come punti di miglioria ce ne possono essere tanti, come separare la logica di lettura a database dalla logica del servizio, quindi fare una classe ComuniStorage dove fai la query a database e ritorni una lista o un solo elemento di una classe (Comune) con le 3 proprietà comune, provincia e regione, poi dal metodo di servizio ritornare un Comune oppure un List<Comune> e richiamare il metodo su ComuniStorage tipo GetListaComuni() o GetComune(ricerca as string) che ritorni appunto o un singolo Comune o una lista in base a quello che ti serve.
Puoi anche evitare il datatable/dataset, utilizzando il datareader per riempire un oggetto Comune e/o una lista.
Dim oComune As String = ""
Dim connectionString As String = ""
Dim sRicerca As String = "comune LIKE '" + oComune + "'"
Dim sRighe As Integer = "0"
Dim oDati As ArrayList
Using conn As New SqlConnection(connectionString)
Using cmd As New SqlCommand("dbo.VS_COMUNI")
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.Add(New SqlParameter("@ID", DBNull.Value))
cmd.Parameters.Add(New SqlParameter("@ricerca", sRicerca))
conn.Open()
cmd.Connection = conn
Using rdr As SqlDataReader = cmd.ExecuteReader()
If rdr.Read()
Dim comune As New Comune()
comune.Comune = rdr("Comune")
comune.Provincia = rdr("Provincia")
comune.Regione = rdr("Regione")
End If
End Using
End Using
End Using
quindi avere almeno 3 classi:
Comune (modello del comune)
ComuneStorage (accesso al database e ritorna il modello comune)
ComuneService (accesso al comuneStorage e ritorna il modello comune)
Ad ogni modo per altre domande, crea un post nuovo e chiudi questo accettando una delle miei risposte, ed eventualmente se questa risposta non è abbastanza e vuoi ulteriori dettagli, apri un altro post con una richiesta specifica.
Michael Denny
Software Developer & Architect
http://blogs.dotnethell.it/Regulator/
http://dennymichael.wordpress.com
Twitter: @dennymic