IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Erreur sur ExecuteReader [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Ecole Superieur de Technologie
    Inscrit en
    Octobre 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ecole Superieur de Technologie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 13
    Par défaut Erreur sur ExecuteReader
    Bonjour,

    J'ai fai une application Vb de la gestion du personnel sur Microsoft visuel basic 2010 avec Acess 2007, mon probbleme c'est dans la recherche avec ExecuteReader, voila le code dans la classe ou j'ai declaré la variable du ExecuteReader :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     Imports System.Data.OleDb
    Imports System.Windows.Forms
     
    Public Class informatique_connection
        Public mycon As OleDbConnection
        Public strcon As String
        Public rdr As OleDbDataReader
        Public myreq As String
        Private cmd As OleDbCommand
     
        Public Sub connecting_in_informatique()
            strcon = "provider=Microsoft.ACE.OLEDB.12.0; Data source=C:\Users\user\Documents\bd.accdb"
            mycon = New OleDbConnection(strcon)
            mycon.Open()
            cmd = New OleDbCommand(myreq, mycon)
            rdr = cmd.ExecuteReader
        End Sub
        Public Sub disconnecting_in_informatique()
            rdr.Close()
            mycon.Close()
        End Sub
    End Class
    et voila la fonction de la recherche :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    Dim rech As String
            Dim i As Integer
            i = 1
            rech = InputBox("Entrer le matricule", "Recherche")
            TextBox1.Text = rech
                db_informatique.myreq = "SELECT * FROM Perso WHere Matricule = '" & TextBox1.Text & "'"
                db_informatique.connecting_in_informatique()
                Do While db_informatique.rdr.Read
                    Me.a1.Text = db_informatique.rdr(0).ToString
                    Me.a2.Text = db_informatique.rdr(1).ToString
                    Me.a3.Text = db_informatique.rdr(2).ToString
                    Me.a4.Text = db_informatique.rdr(3).ToString
                    Me.a5.Text = db_informatique.rdr(4).ToString
                    Me.a6.Text = db_informatique.rdr(5).ToString
                    Me.a7.Text = db_informatique.rdr(6).ToString
                    Me.a8.Text = db_informatique.rdr(7).ToString
                    Me.a9.Text = db_informatique.rdr(8).ToString
                    Me.a12.Text = db_informatique.rdr(9).ToString
                    Me.a10.Text = db_informatique.rdr(10).ToString
                    Me.a11.Text = db_informatique.rdr(11).ToString
                    Me.a13.Text = db_informatique.rdr(12).ToString
                    Me.a14.Text = db_informatique.rdr(13).ToString
                    Me.a15.Text = db_informatique.rdr(14).ToString
                    i = 2
                Loop
                db_informatique.disconnecting_in_informatique()
            Catch ex As OleDb.OleDbException
                MessageBox.Show(ex.Message.ToString)
            End Try
     
        End Sub

    quelqu'un pourra m'aider??

    Merci d'avance...
    Images attachées Images attachées  

  2. #2
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Bonsoir Asuna,


    Regardes bien cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     cmd = New OleDbCommand(myreq, mycon)

    ----> ta requête sql ("myreq") est vide !!!!!


    Il faut que tu déplaces ces 2 lignes dans ta sub rechercher :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    cmd = New OleDbCommand(myreq, mycon)
    rdr = cmd.ExecuteReader
    Ta méthode "SeConnecterA" ne doit pas contenir d'exécution de commande donc encore moins de requête SQL, sinon ça veut dire que tu fais en même tps d'autres traitements ...... pas logique pour une sub qui s'occupe uniquement de la connection à la base..!!


    A+

  3. #3
    Membre averti
    Femme Profil pro
    Ecole Superieur de Technologie
    Inscrit en
    Octobre 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ecole Superieur de Technologie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 13
    Par défaut
    Pardonnez moi parceque je suis débutante.. d’âpres ce que j'ai compris myreq n'est pas vide car j'ai mis dans ma fonction la requette suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    db_informatique.myreq = "SELECT * FROM Perso WHere Matricule = '" & TextBox1.Text & "'"
    sinon qu'est ce que je dois faire ?

  4. #4
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Tu peux commencer par poster l'intégralité de ta classe et nous dire à quoi corresponds ceci exactement :

    puisque le nom de ta classe est "informatique_connection" ???!!!

    Merci.

  5. #5
    Membre averti
    Femme Profil pro
    Ecole Superieur de Technologie
    Inscrit en
    Octobre 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ecole Superieur de Technologie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 13
    Par défaut
    j'ai declaré bd_informatique comme un type de informatique_connection, voila tt le code de la recherche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    Imports System
    Imports System.Data
     
    Public Class modiPerso
        Dim db_informatique As New informatique_connection
     
        Private Sub modiPerso_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
            Try
                Dim rech As String
                Dim i As Integer
                i = 1
                rech = InputBox("Entrer le matricule", "Recherche")
                TextBox1.Text = rech
                db_informatique.myreq = "SELECT * FROM Perso WHere Matricule = '" & rech & "'"
                db_informatique.connecting_in_informatique()
                Do While db_informatique.rdr.Read
                    Me.a1.Text = db_informatique.rdr(0).ToString
                    Me.a2.Text = db_informatique.rdr(1).ToString
                    Me.a3.Text = db_informatique.rdr(2).ToString
                    Me.a4.Text = db_informatique.rdr(3).ToString
                    Me.a5.Text = db_informatique.rdr(4).ToString
                    Me.a6.Text = db_informatique.rdr(5).ToString
                    Me.a7.Text = db_informatique.rdr(6).ToString
                    Me.a8.Text = db_informatique.rdr(7).ToString
                    Me.a9.Text = db_informatique.rdr(8).ToString
                    Me.a12.Text = db_informatique.rdr(9).ToString
                    Me.a10.Text = db_informatique.rdr(10).ToString
                    Me.a11.Text = db_informatique.rdr(11).ToString
                    Me.a13.Text = db_informatique.rdr(12).ToString
                    Me.a14.Text = db_informatique.rdr(13).ToString
                    Me.a15.Text = db_informatique.rdr(14).ToString
                    i = 2
                Loop
                db_informatique.disconnecting_in_informatique()
            Catch ex As OleDb.OleDbException
                MessageBox.Show(ex.Message.ToString)
            End Try
     
        End Sub

  6. #6
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Autant pour moi Asuna, je n'avais pas compris qu'il s'agissait de ton instanciation .... fatigue quand tu nous tient... ^_^

    perso j'utilise tjrs ceci lorsque je parcours (pas grave...) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
      While db_informatique.rdr.Read
                   ' ...
                   ' .....
      End While
    Sinon à quoi ressemble ta table "Perso" exactement stp ?

    Ton message d'erreur indique bien que tu essayes de récupérer une donnée qui ne possède pas un bon type.
    Donc soit tu as une données de type image par exemple dans ta base et que tu essayes de la récupérer en type String soit un autre truc du genre ...

  7. #7
    Membre averti
    Femme Profil pro
    Ecole Superieur de Technologie
    Inscrit en
    Octobre 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ecole Superieur de Technologie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 13
    Par défaut
    Ah, je l'ai remplacé et j'ai supprimer le "try" alors mnt j'ai un autre probleme.. message d'erreur ne s'affiche plus mais quand j'entre le Matricule pour faire la recherche, les champs s'affichent mais vide !!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    Imports System
    Imports System.Data
     
    Public Class modiPerso
        Dim db_informatique As New informatique_connection
     
        Private Sub modiPerso_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
     
            Dim rech As String
            Dim i As Integer
            i = 1
            rech = InputBox("Entrer le matricule", "Recherche")
            TextBox1.Text = rech
            db_informatique.myreq = "SELECT * FROM Perso WHere Matricule = '" & rech & "'"
            db_informatique.connecting_in_informatique()
            While db_informatique.rdr.Read
                Me.a1.Text = db_informatique.rdr(0).ToString 'Matricule
                Me.a2.Text = db_informatique.rdr(1).ToString 'Nom
                Me.a3.Text = db_informatique.rdr(2).ToString 'Prenom
                Me.a4.Text = db_informatique.rdr(3).ToString 'CIN
                Me.a5.Text = db_informatique.rdr(4).ToString 'Date de naissance
                Me.a6.Text = db_informatique.rdr(5).ToString 'Adresse
                Me.a7.Text = db_informatique.rdr(6).ToString 'Tél
                Me.a8.Text = db_informatique.rdr(7).ToString 'E-mail
                Me.a9.Text = db_informatique.rdr(8).ToString 'Situation familliale
                Me.a12.Text = db_informatique.rdr(9).ToString 'Date de recrutement
                Me.a10.Text = db_informatique.rdr(10).ToString 'Date prev. retraite
                Me.a11.Text = db_informatique.rdr(11).ToString 'Echelle
                Me.a13.Text = db_informatique.rdr(12).ToString 'Formatrion de base
                Me.a14.Text = db_informatique.rdr(13).ToString 'Droit de congé
                Me.a15.Text = db_informatique.rdr(14).ToString 'jours restants
                i = 2
            End While
            db_informatique.disconnecting_in_informatique()
     
     
        End Sub
    je pense pas parce que j'ai fait assurer que les types sont les meme

    voila ma table:
    Images attachées Images attachées  

  8. #8
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Verifies bien que tes formats de date sont correctes. Ce message d erreur est souvent lié a ca

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. erreur sur ExecuteReader
    Par michael_MS dans le forum VB.NET
    Réponses: 15
    Dernier message: 20/11/2008, 17h05
  2. [VBS] Erreur sur "AddWindowsPrinterConnection"
    Par Admin dans le forum VBScript
    Réponses: 5
    Dernier message: 27/03/2004, 16h15
  3. Erreur sur serveur lié
    Par k-lendos dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 18/03/2004, 15h21
  4. []Erreur sur second emploi collection binding
    Par jacma dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 08/03/2004, 18h02
  5. Erreur sur le TNSListener après installation de 9iAS
    Par Patmane dans le forum Installation
    Réponses: 4
    Dernier message: 04/02/2004, 11h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo