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.