ExecuteReader

cs_alicia26 Messages postés 65 Date d'inscription lundi 21 mai 2007 Statut Membre Dernière intervention 7 juillet 2009 - 28 juil. 2008 à 17:44
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 - 28 juil. 2008 à 20:23
bonjour à tous!!
depuis plusieurs jours que j'essaie sans succès de corriger cette erreur dans mon code.
c'est un formulaire d'authentification,seul particularité l'username est contenu dans un dropdownlist qui liste tous les emails contenus dans la base de données (sous access) et pour une 1ère connexion,l'utilisateur est redirigé vers une autre page afin de créer son nouveau mot de passe(le mot de passe par défaut:password).
la génération m'affiche cette erreur:
cette ligne myreader As
Data.OleDb.OleDbDataReader = Mycommand.ExecuteReader() est surligné et
cette erreur est affiché:
aucune valeur donnée pour un ou plusieurs des paramètres requis.
 


ma page login.aspx.vb
Imports System.Data
Imports System.Data.OleDb
Partial Class Login
    Inherits System.Web.UI.Page
   Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
 End Sub

   Sub BtnSubmit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSubmit.Click
        Dim MyConnection As Data.OleDb.OleDbConnection = New Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=D:\Visual Studio 2005\WebSites4\App_Data\Bdd.mdb")
        Dim Mycommand As Data.OleDb.OleDbCommand = MyConnection.CreateCommand()
          Mycommand.CommandText = " select * from employés where password= " & passwd.Text & " and email=? "

        Mycommand.Parameters.Add("@DropDownList2", OleDbType.VarChar, 40)
      Mycommand.Parameters("@DropDownList2").Value() = DropDownList2.SelectedValue
          MyConnection.Open()

        Dim myreader As Data.OleDb.OleDbDataReader = Mycommand.ExecuteReader()
        Do While myreader.Read()
            Dim Log As String = myreader.GetString(0)
            Dim Pwd As String = myreader.GetString(1)
            If DropDownList2.SelectedValue "Log" And passwd.Text "password" Then
                Response.Redirect("page1.aspx")

            Else
                Response.Redirect("page2.aspx")
            End If
        Loop
      myreader.Close()

        MyConnection.Close()

    End Sub
 
End Class

merci pour votre aide!

3 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
28 juil. 2008 à 19:51
Bonjour,

C'est une erreur classique de ACCESS
c'est qu'un de tes parametres est incorrecte

Ta requete semble bizarre
select * from employés where password= '" & passwd.Text & "' and email=?

Met passwd en requete paramtrée car ici il n'est pas conciéré comme chaine de caractere il semble manquer
les apostrophes (en rouge)
avec les requetes parametrees tu n'aurais pas eu le probleme
0
cs_alicia26 Messages postés 65 Date d'inscription lundi 21 mai 2007 Statut Membre Dernière intervention 7 juillet 2009
28 juil. 2008 à 20:04
bonjour et merci pour ta réponse
je crois pas savoir ce que c'est une réquête paramètrée.
alors,j'ai remplacé une portion de mon code avec ceci:

 Mycommand.CommandText = " select * from employés where password=? and email=? "
Mycommand.Parameters.Add("@DropDownList2", OleDbType.VarChar, 40)
        Mycommand.Parameters.Add("@passwd", OleDbType.VarChar, 15)                 Mycommand.Parameters("@passwd").Value() = passwd.Text
   Mycommand.Parameters("@DropDownList2").Value() = DropDownList2.SelectedValue
          MyConnection.Open()

mais toujours la même erreur.
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
28 juil. 2008 à 20:23
C'est toujours la même erreur.

Si c'est le cas je ne vois ou est l'erreur

Essaie de mettre les parametres en dur dans un premier temps.
Et avance pas par pas.

Bon courage dans ta recherche
0
Rejoignez-nous