Non è per niente strano che quel codice, in una pagina funzioni, in questa, no. Magari lì apri la connessione, qui, no.
Ti consiglio di farti una funzione di libreria che ti restituisca un DataTable, un DataView o un DataSet.
Per esempio, con la funzione di sotto, io non ho usato mai più il metodo fill, l'ho proprio dimenticato, ed ha sempre funzionato (e per sempre intendo proprio sempre)
codice:
Public Overloads Function GetDataTable(ByVal stringaConnessione$, ByVal stringaSQL$) As DataTable
Try
'creo un nuovo DataAdapter
Dim DataAdapter As New OleDbDataAdapter(stringaSQL, stringaConnessione)
'creo un DataTable e lo riempio con i dati
Dim DataTable As New DataTable
DataAdapter.FillSchema(DataTable, SchemaType.Source)
DataAdapter.Fill(DataTable)
Return DataTable
Catch Errore As Exception
Throw
Return Nothing
End Try
End Function
Ti fai più funzioni in Overloads, dove, per esempio, al posto di stringaConnessione, passi la connessione oppure l'oggetto Comand.
Ciao