ho provato a fare come dici tu ma è la stessa cosa. La cosa strana è che quando non utilizzavo le classi lo stesso codice funzionava perfettamente, perciò secondo me c'è qualcosa che non va con la stringa di connessione o con qualche passaggio di parametri con la classe.

cerco di darvi + informazioni possibili:
in questa pagina ci sono 2 Dropdownlist. Uno di questi in base alla selezione fatta popola l'altro Dropdownlist con una chiamata ad una procedura. Tutti e 2 hanno setto l'AutoPostBack=true.

codice:
Sub Carica_Menu(Sender As Object, E As EventArgs)
	dim ObjDatabase as new TYASPNET.database()
		
	ObjDatabase.ConnectionString = "provider=Microsoft.Jet.OLEDB.4.0; data source=" & Server.MapPath("mdb-database/fg-tunisie.mdb")
		
	Dim objReader As OleDbDataReader
		
	objReader = objDatabase.SelectSQL("SELECT Menu FROM Menu WHERE Cat='"& Disciplina.items(Disciplina.SelectedIndex).Value &"' ")	
	if not objReader is nothing then
		Categoria.DataValueField = "Menu" 
		Categoria.DataTextField = "Menu" 
		Categoria.DataSource = objReader
		Categoria.DataBind()
	else
		lblmessage.text="ERRORE NELLA QUERY"
	end if
End Sub
In questapagina ci sono 2 procedure che si connettono al DB, perciò se io metto la parte in corsivo appena apro i TAG <script> va bene lo stesso? o devo per forza metterli in ogni procedura che fa operazoni sul DB?


vi riporto il codice della classe:
codice:
Public Class database
        Public ConnectionString As String
        Dim objConn As New OleDbConnection()
        Dim objCmd As New OleDbCommand()

        Public Function SelectSQL(ByVal strSelect As String) As OleDbDataReader          
            Try
                objConn = New OleDbConnection(ConnectionString)
                objCmd = New OleDbCommand(strSelect, objConn)
                objCmd.Connection.Open()
                Return objCmd.ExecuteReader
                objCmd.Connection.Close()
            Catch ex As OleDbException
                Return Nothing
            End Try
        End Function
.
.
.
Il codice che vi ho riportato funziona perfettamente quando faccio il login nell'area privata:
codice:
Sub Login(ByVal sender As Object, ByVal e As System.EventArgs)
	dim ObjDatabase as new TYASPNET.database()
		
	ObjDatabase.ConnectionString = "provider=Microsoft.Jet.OLEDB.4.0; data source=" & Server.MapPath("mdb-database/fg-tunisie.mdb")
	
	Dim objReader As OleDbDataReader
	
	objReader = objDatabase.SelectSQL("SELECT id FROM Admin WHERE Nome='"& ObjDatabase.Controlla_Stringa(Nome.text) &"' AND Pwd='"& ObjDatabase.Controlla_Stringa(Pwd.Text) &"' ")
	
	if not objReader is nothing then
		Session("Admin")="ok"
		objReader.Close
		response.redirect ("index.aspx")
	else
		Errore.Visible = True
		Errore.Text = "ERRORE NELLA QUERY"
	end if

End Sub
perciò il codice va, sicuramente c'è qualcosa che non va con il passaggio dei parametri alla classe e io credo che sia il connectionString però non riesco a cpire il motivo.