Scusate se continuo a rompere ma le lacune sono molte.
Sono costretto a usare ODBC perché è l'unico modo che mi da il provider per accedere ad un file mysql.

Quindi per ottenere un equivalente del recordset -> data.datatable uso il seguente codice.
(Attualmente le prove sono con un DataBase di Access).

Codice PHP:
Imports Microsoft.VisualBasic
Imports System
Imports System
.Web

Public Class DataBase

    
Function FindRecord(ByVal Table As StringByVal Sql As String) As Data.DataTable

        Err
.Clear()
        
Dim Contesto As HttpContext HttpContext.Current

        Dim ObjCo 
As New Data.Odbc.OdbcConnection
        ObjCo
.ConnectionString System.Configuration.ConfigurationManager.AppSettings("connString")
        If 
Err.Number <> 0 Then Contesto.Response.Redirect("~/errore.htm?P=FR001")

        
Dim DataAD As Data.Odbc.OdbcDataAdapter
        DataAD 
= New Data.Odbc.OdbcDataAdapter(SqlObjCo)
        If 
Err.Number <> 0 Then Contesto.Response.Redirect("~/errore.htm?P=FR002")

        
Dim Rs As New Data.DataTable
        Dim returnValue 
As Integer DataAD.Fill(Rs)
        If 
Err.Number <> 0 Then Contesto.Response.Redirect("~/errore.htm?P=FR003")

        
FindRecord Rs
        ObjCo
.Close()

    
End Function

End Class 
Ho letto che OdbcDataAdapter restituisce tutti i record?
Quello che non ho capito è restituisce tutti i record previsti dalla Sql. I record saranno molti, se mai finirò il tutto, e l'idea che carichi 30.000 record per selezionarne uno mi sembra una follia.
Le Sql che uso generalmente selezionano un solo record "ID=Valore" quindi di solito uso
Data.DataTable.Rows(0)("Campo")

è corretto il modo di procedere? Ci sono altre soluzioni?

Un grazie anticipato, e buon Natale a tutti.
Tomas