Visualizzazione dei risultati da 1 a 3 su 3

Discussione: procedura login

  1. #1

    procedura login

    Ho scritto una semplice procedura,
    l'utente inserisce in un form user e password, onClick viene lanciata la procedura che riporto di seguito, che funziona correttamente.
    Volevo sapere come potrebbe essere migliorato il codice, se dimentico qualcosa, o se magari esiste un modo ancora più semplice per fare la stessa cosa.

    sub submit (obj as object, e as eventargs)
    dim errore as integer

    'preparo la connessione ed eseguo la query
    Dim objConn As New OleDbConnection ("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=e:\clienti\saporiti\gestione.mdb")
    dim objcmd as new oledbdataadapter ("select * from uspass where usname= '" & tbusername.text & "'", objconn)

    'creo e riempo il dataset
    dim ds as dataset = new dataset()
    objcmd.fill(ds, "tbluspass")

    'creo un array e ci metto il risultato della query, la user è chiave primaria, quindi sono sicuro che il dataset sia composto da una sola riga
    dim myrow() as datarow = ds.tables("tbluspass").select(nothing, nothing, dataviewrowstate.currentrows)

    'verifico che l'array non sia vuoto
    if (myrow.length > 0) then

    'verifico che la password corrisponda alla username
    if (myrow(0)(0)=tbusername.text) and (myrow(0)(1)=tbpassword.text) then
    response.write("login effettuato")
    else
    errore = 1
    end if
    else
    errore = 1
    end if

    'se una delle condizioni non è verificata...
    if errore=1 then
    response.write("us o pwd errati")
    end if
    end sub


    mi scuso per la lunghezza del post e ringrazio chiunque voglia darmi qualche consiglio.
    http://www.easymemo.it - vCard ed agenda

  2. #2
    Secondo me ti complichi un pò la vita.
    Innanzi tutto anzichè utilizzare un dataset ti conviene utilizzare l'oggetto datareader (l'oggetto dataset va utilizzato solo in casi particolari); è inutile l'utilizzo dell'array poichè puoi verificare direttamente se il recordset è vuoto o no


    Dim objConn As New OleDbConnection ("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=e:\clienti\saporiti\gestione.mdb")
    dim objcmd as new oledbdataadapter ("select * from uspass where usname= '" & tbusername.text & "'", objconn)
    objconn.open
    sql="select * from uspass where usname= '" & tbusername.text & "' and tabluspass='" & tbpassword.text & "'"
    Dim objCommand as New OleDbCommand(sql , objconn)
    Dim objDataReader as OleDbDataReader
    objDataReader = objCommand.ExecuteReader
    if objDataReader.read
    response.write("connesso")
    else
    response.write("non connesso")
    end if
    objconn.close


    puoi fare una cosa del genere
    come vedi il codice si riduce di tanto ed impieghi meno risorse.

    SB

  3. #3
    Dim objConn As New OleDbConnection ("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=e:\clienti\saporiti\gestione.mdb")
    objconn.open
    sql="select * from uspass where usname= '" & tbusername.text & "' and tabluspass='" & tbpassword.text & "'"
    Dim objCommand as New OleDbCommand(sql , objconn)
    Dim objDataReader as OleDbDataReader
    objDataReader = objCommand.ExecuteReader
    if objDataReader.read
    response.write("connesso")
    else
    response.write("non connesso")
    end if
    objconn.close


    ops...
    mi ero dimenticato una tua istruzione con il dataadapter
    questa dovrebbe andare........

    SB

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.