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 :

Reprise d'un code de la FAQ et il y a une erreur que je ne comprends pas


Sujet :

VB.NET

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 66
    Points : 45
    Points
    45
    Par défaut Reprise d'un code de la FAQ et il y a une erreur que je ne comprends pas
    Bonjour a tous,

    En fouinant dans la FAQ j'ai trouvé mon bonheur, cependant j'ai une erreur qui apparait que je n'arrive pas a comprendre !

    Le lien de la FAQ : http://dotnet.developpez.com/faq/asp...=ado_connexion

    J'ai donc repris le code de David Pedehourcq, "Comment se connecter à une base Mysql via ODBC" de cette manière :

    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
     
    Imports System
    Imports System.Data
    Imports System.Data.Odbc
     
    Public Class BDD
     
        Private Sub Connexion()
            Dim ConnexionParams As String = "DRIVER=(MySQL ODBC 3.51 Driver);" + "SERVER=localhost;" + "DATABASE=chocolat;" + "UID=root;" + "PASSWORD=fraise;"
     
            Try
                Dim ConnexionOdbc As New OdbcConnection(ConnexionParams)
                Dim CommandOdbc As New OdbcCommand()
                Dim DataReader As New OdbcDataReader()
     
                'Connexion
                ConnexionOdbc.Open()
                CommandOdbc.Connection = ConnexionOdbc
     
                'Envoie de requetes
                CommandOdbc.CommandText = "SELECT * FROM chocolat_users"
                DataReader = CommandOdbc.ExecuteReader()
     
                While DataReader.Read()
                    Console.WriteLine(("Data : " + DataReader.GetString(1) + " " + DataReader.GetString(2)))
                End While
     
                'Déconnexion
                DataReader.Close()
                ConnexionOdbc.Close()
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try
        End Sub
    End Class
    Cependant j'obtiens l'erreur suivante : 'System.Data.Odbc.OdbcDataReader.Friend Sub New(command As System.Data.Odbc.OdbcCommand, cmdWrapper As System.Data.Odbc.CMDWrapper, commandbehavior As System.Data.CommandBehavior)' n'est pas accessible dans ce contexte, car il est 'Friend'.

    au niveau de cette ligne donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Dim DataReader As New OdbcDataReader()
    Je ne comprends pas l'erreur, comment corriger cela ?

    Merci d'avance et bonne journée !

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Points : 1 745
    Points
    1 745
    Par défaut
    Bonjour,

    La méthode ExecuteReader() retourne une instance de OdbcDataReader. Il ne faut donc pas tenter de créer cette instance avec un New :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dim MyDataReader As OdbcDataReader 
    MyDataReader = MyCommand.ExecuteReader()

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 66
    Points : 45
    Points
    45
    Par défaut
    Bonjour et merci de ta réponse rapide,

    En effet sans créé l'instance avec le new ça marche correctement !

    Cependant j'ai d'autres soucis .. maintenant que la déclaration de ObdcDataReader se fait correctement j'ai de nouvelles erreurs.

    Au niveau de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DataReader = CommandOdbc.ExecuteReader()
    il me dit "impossible de convertir une valeur de type 'System.Data.ObdcDataReader' en Tableau a 1 dimension(s)" alors comment procéder pour le récupérer sous forme de tableau a 1 dimension ?

    Et ensuite après cela des que j'utilise une méthode de DataReader comme par exemple DataReader.Read() il me dit que la méthode n'est pas un membre de 'System.Array'

    D'ou cela provient il ? est ce du a l'erreur précédente ? Ou bien est ce une chose a part ?

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Points : 1 745
    Points
    1 745
    Par défaut
    Attention à la déclaration :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim MyDataReader As OdbcDataReader
    et non pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim MyDataReader As OdbcDataReader()
    Sinon c'est un tableau que tu déclares. Je suppose que l'erreur vient de là ...

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 66
    Points : 45
    Points
    45
    Par défaut
    Ah non autant pour moi, j'avais mis des parenthèse a la déclaration et sans ça fonctionne, il faut donc bien déclarer de cette manière !

    Merci beaucoup

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

Discussions similaires

  1. Code simple de validation mais il y a une erreur
    Par amerex dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/02/2010, 20h56
  2. Ce code produit une erreur que je ne comprend pas
    Par Andrew_Hobson dans le forum Débuter
    Réponses: 4
    Dernier message: 19/08/2009, 09h20
  3. code de base que je ne comprends pas
    Par poulette3000 dans le forum C
    Réponses: 4
    Dernier message: 26/09/2007, 19h58
  4. Réponses: 2
    Dernier message: 18/05/2007, 12h34
  5. code que je ne comprend pas
    Par gloglo dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 29/01/2007, 18h11

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