[asp.NET + vb + access] Problema reader che rimane vuoto.
Lybra1983 non è online. Ultima attività: 31/08/2008 21.30.56Lybra1983
Inserito il: 25 luglio 2008 11.45
19 messaggi dal 18 dic 2007 Istalla Microsoft Silverlight!
Ciao a tutti, ho un problema con un oggetto reader che non ne vuole sapere di riempirsi. Mettendogli un breakpoint tattico viene fuori hasrows=false e fieldcount=10; quindi intuisco che la tabella la legge (siccome ha per l'appunto 10 fields), ma non trova risultati con quella query. Peccato però che la stessa query sparata nell'SQL query analyzer di Access mi ritorni 3 record utili. WHY??? Ci ho sbattuto la testa tutta la giornata di ieri e non ho trovato soluzione, magari riuscite ad aiutarmi voi. Qui di seguito il codice utile:


    Public Sub dbOpen()

        strConn = "Provider=Microsoft.Jet.OLEDB.4.0;"
        strConn &= "Data source=E:\Data\My Documents\Visual Studio 2008\WebSites\nami\db-nami.mdb;"
        strConn &= "Jet OLEDB:System Database=db-nami.mdw"

        Try
            objConn.ConnectionString = strConn
            objCmd = objConn.CreateCommand
            objConn.Open()
        Catch thisException As Exception
            MsgBox(thisException.Message, MsgBoxStyle.Critical, "Error occurred:")
        End Try

    End Sub

Con questa sub apro la connessione al database.


    Public Function usrLogin(ByVal strUsr As String, ByVal strPwd As String) As Boolean
        objCmd.CommandText = "SELECT * FROM tbl_Users"
        objReader = objCmd.ExecuteReader
        While objReader.Read
            If objReader("Username") = strUsr Then
                If objReader("Password") = strPwd Then
                    bolIsAdmin = objReader("isAdmin")
                    usrLogin = True
                    Return usrLogin
                    Exit Function
                End If
            End If
        End While
    End Function

Con questa function eseguo il login al sistema; ve la posto giusto per precisare che la connessione e l'interrogazione del db funzionano senza problemi (fin qui).
Per questioni di praticità mia l'apertura della connessione al db l'ho impostata fuori da questa funzione in questo specifico caso.


    Public Sub Capture(ByVal strTypeSelected As String, ByVal strCaptureSelected As String)

        dbOpen()

        Select Case (strTypeSelected)
            Case Is = "typeNumber"
                objCmd.CommandText = "SELECT tbl_Store.storeNumber, * FROM tbl_Store WHERE tbl_Store.storeNumber Like '" & strCaptureSelected & "'"
                objReader = objCmd.ExecuteReader
            Case Is = "typeString"
                ' codice per typeString
            Case Is = "typeIP"
                ' codice per typeIP
            Case Else
                ' codice per alternativa
        End Select

    End Sub

Ecco qua la routine incriminata... il reader rimane vuoto qualunque parametro io gli passi e non capisco perché. Mi son fatto sparare a schermo la query in modo da verificare che fosse corretta e che eseguisse il case "typeNumber"; tutto apposto... tranne che il reader é sempre vuoto.

Tra l'altro la query originale era molto più semplice:
"SELECT * FROM tbl_Store WHERE storeNumber='" & strCaptureSelected & "'"
Ho provato a cambiarla perché quando la inserivo nell'SQL query analyzer di Access me la cambiava con la sintassi che ho postato nelle parti di codice; entrambe lasciano il reader vuoto però. Non so se sia un problema di query o sbaglio qualcosa a livello di codice. Qualche idea???

thx per una mano!!!
RE: [asp.NET + vb + access] Problema reader che rimane vuoto.
vladimiro non è online. Ultima attività: 05/09/2008 8.23.42vladimiro
Inserito il: 25 luglio 2008 14.15
262 messaggi dal 04 ago 2002 Istalla Microsoft Silverlight!
ciao,
indicazione n° 1) usa i parametri, non concatenare le stringhe!!! ;)
indicazione n° 2) prova a stampare con un while il resulset di quella query, magari il problema è dentro il Case.

Se verifichi che il resultset continua ad essere vuoto l'unica indagata rimane la query.


v

RE: [asp.NET + vb + access] Problema reader che rimane vuoto.
Lybra1983 non è online. Ultima attività: 31/08/2008 21.30.56Lybra1983
Inserito il: 26 agosto 2008 16.30
19 messaggi dal 18 dic 2007 Istalla Microsoft Silverlight!
Ciao Vladimiro e grazie per l'aiuto, scusami per la risposta tardiva ma poi sono andato un mese in vacanza e sono appena tornato.

Ho modificato la query con i parametri... così:


                objCmd.CommandText = "SELECT tbl_Store.storeNumber " & _
                                     "FROM tbl_Store " & _
                                     "WHERE tbl_Store.storeNumber " & _
                                     "LIKE '" & strCaptureSelected & "'"


Il recordset rimane vuoto, e la query copiata e incollata in access funziona... qualche idea???
RE: [asp.NET + vb + access] Problema reader che rimane vuoto.
fabrica non è online. Ultima attività: 05/09/2008 9.50.29fabrica
Inserito il: 26 agosto 2008 17.29
Top Poster / www.fabricasoft.net / Blog / 1299 messaggi dal 03 dic 2001 Istalla Microsoft Silverlight!
Ciao,
hai postato questo codice:
Public Sub Capture(ByVal strTypeSelected As String, ByVal strCaptureSelected As String)

dbOpen()

Select Case (strTypeSelected)
Case Is = "typeNumber"
objCmd.CommandText = "SELECT tbl_Store.storeNumber, * FROM tbl_Store WHERE tbl_Store.storeNumber Like '" & strCaptureSelected & "'"
objReader = objCmd.ExecuteReader
Case Is = "typeString"
' codice per typeString
Case Is = "typeIP"
' codice per typeIP
Case Else
' codice per alternativa
End Select

End Sub
Chiami il metodo ExecuteReader ma non cicli il "recordset".
While objReader.Read()
...

Fabrizio Canevali

Working on VS2008,LINQ & WPF e ... non è ancora Quaresma
RE: [asp.NET + vb + access] Problema reader che rimane vuoto.
vladimiro non è online. Ultima attività: 05/09/2008 8.23.42vladimiro
Inserito il: 26 agosto 2008 23.14
262 messaggi dal 04 ago 2002 Istalla Microsoft Silverlight!
ciao Lybra,

si, ci sono un po' di cose che non vanno ;)

1) come ha detto fabbrica non effettui il ciclo. Devi metterci un while per scorrere le righe.

2) non vedo la chiusura del datareader e della connection. Non c'entra con il tuo problema ma occhio, devi assolutamente chiudere entrambi.

3) non vedo neppure i parametri

guarda su MSDN quì: http://msdn.microsoft.com/en-us/library/yy6y35y8.aspx c'è oltre alla spiagazione un esempio con dentro tutti e tre i punti.

facci sapere ...

vladi

RE: [asp.NET + vb + access] Problema reader che rimane vuoto.
Lybra1983 non è online. Ultima attività: 31/08/2008 21.30.56Lybra1983
Inserito il: 28 agosto 2008 10.45
19 messaggi dal 18 dic 2007 Istalla Microsoft Silverlight!
Il recordset é ciclato, solo l'ho fatto in un'altra parte del codice che non vi ho mostrato. In ogni caso é poco importante quella parte siccome quando faccio il debug mettendo un breakpoint dopo l'executereader, il reader risulta come hasrows=false e quindi proprio non lo riempie.

Gli oggetti li pulisco in quella parte che non ho mostrato; grazie in ogni caso per la precisazione. =)

Ah però... bella sta parametrizzazione, non sapevo esistesse, infatti avevo capito tutt'altro :D. Grazie per il tip; ci spendo un po di tempo nei prossimi giorni e vedo se risolvo... per ora le ho dato solo uno sguardo veloce e sembra essermi chiara (a grandi linee).

Thx per ora. :)

Vai a:
Torna al forum |   Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.


maltra - 641 pt
vladimiro - 461 pt
fabrica - 180 pt

Ultimi vincitori: fabrica, vladimiro, PeppeDotNet

Iscriviti anche tu e raccogli punti. Questo mese in palio VS 2008 + Windows Server 2008, ReShaper e 1 ebook!



COMMUNITY
ULTIMI MESSAGGI


IN EVIDENZA
MISC
Powered by .db Forums