Ti faccio un esempio elementare in vb.net che puoi tradurre in c# con poco sforzo.
creo una classe nella directory App_Code
codice:
Public Class prova
Public Property codice_istat_regione As String
Public Property nome_regione As String
End Class
creo il metodo getDatiAcc del tipo List(Of prova)
codice:
Protected Function getDatiAcc(stringaConnessione As String, sql As String) As List(Of prova)
Dim result As New List(Of prova)()
Using dr As OleDbDataReader = msole.GetDataReader(stringaConnessione, sql)
Do While dr.Read
result.Add(New prova() With {.codice_istat_regione = dr(0).ToString, .nome_regione = dr(1).ToString})
Loop
End Using
Return result
End Function
e lo richiamo con
codice:
Dim lista As List(Of prova) = getDatiAcc(gl.StringaConnessione, "select codice_istat_regione, nome_regione from regioni where codice_istat_regione = '20'")
come detto, eliminerei questo codice e creerei un datatable col codice
codice:
Dim dt As DataTable = msole.GetDataTable(gl.StringaConnessione, "select codice_istat_regione, nome_regione from regioni where codice_istat_regione = '20'")
GetDataTable è evidentemente un metodo statico della classe msole che devi implementare.