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

Windows Forms Discussion :

[VB.NET] Connection à une base vb.net avec interogation


Sujet :

Windows Forms

  1. #1
    Membre habitué Avatar de lou87
    Profil pro
    Inscrit en
    Février 2006
    Messages
    368
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 368
    Points : 128
    Points
    128
    Par défaut [VB.NET] Connection à une base vb.net avec interogation
    Bon et bien encore un autre problème à résoudre

    Celui de la connection à une base de données access qui ne veut pas fonctionner…
    Je crois que c’est l’un des plus costaud des problèmes que j’ai…
    J’ai un des mes collègues de boulot qui ne comprend pas pourquoi il ne veut pas fonctionner…

    Voici le code :

    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
    Private Sub listder_cellule_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles listder_cellule.Click
     
            Dim myDataSet1 As Data.OleDb
     
            'Il faut créer un objet connexion:
            Dim MyConnexion As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & _
            "table")
            'Il faut donner les paramètres Provider= et Data source=
            'Dans le cas d'une base Access le provider (le moteur à utiliser est le moteur OLEDB Jet 4.
     
            'Il faut créer un objet Command:
            Dim Mycommand As OleDbCommand = MyConnexion.CreateCommand()
     
            'Il faut donner dans la propriété CommandText la requête SQL 
            'permettant d'extraire ce que l'on désire.
            Mycommand.CommandText = "requête"
     
            'Ici dans la table HDC_VW_SC_USER, on extrait le champ CELLULE
     
            'Il faut ouvrir la connexion:
            MyConnexion.Open()
     
            'Il faut créer un objet DataReader:
            Dim myReader As OleDbDataReader = Mycommand.ExecuteReader()
     
            'On crée une boucle permettant de lire les enregistrements les uns après les autres, 
            'on récupère le champ (0) qui est un String, on la met dans la ListBox
            Do While myReader.Read()
                listder_cellule.DataSource = myDataSet1._Table()         
                listder_cellule.Items.Add(myDataSet1)
            Loop
     
            'On ferme pour ne pas monopoliser.
            myReader.Close()
            MyConnexion.Close()
            'OleDbConnection1.Open()
            'OleDbCommand1.ExecuteReader()
     
    End Sub
    Voili, j’espère que quelqu’un pourra éclairer ma lanterne ^^

  2. #2
    Membre éprouvé
    Avatar de HULK
    Inscrit en
    Juillet 2003
    Messages
    1 276
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 276
    Points : 1 281
    Points
    1 281
    Par défaut
    est ce que tu as un message d'erreur ???, ou est ce que tu rempli ton dataset ???

  3. #3
    Membre habitué Avatar de lou87
    Profil pro
    Inscrit en
    Février 2006
    Messages
    368
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 368
    Points : 128
    Points
    128
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim myDataSet1 As Data.OleDb
    Il me demande un type pour cette expression.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    listder_cellule.DataSource = myDataSet1._Table()
    Le débugage s'arrête sur cette expression et dès que je met ma flèche dessus, il affiche comme message :
    "listder_cellule.DataSource =
    Programme_recherche_1.DataSet1._TableDataTable" et "DataSet1=Nothing"

    Pourtant j'ai fait un dataAdapter, et un OldConnection, et j'ai fait le Dataset...

    Faut dire que je commence à tapoter du vb.net que depuis 1 mois 1/2... Donc j'ai encore beaucoup de choses à apprendre...

  4. #4
    Membre éprouvé
    Avatar de HULK
    Inscrit en
    Juillet 2003
    Messages
    1 276
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 276
    Points : 1 281
    Points
    1 281
    Par défaut
    y'a pas de dataadapter dans ton code, va voir là :

    http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/vbcon/html/vbwlkwalkthroughdisplayingdatafromsingletableinwindowsform.asp

  5. #5
    Membre habitué Avatar de lou87
    Profil pro
    Inscrit en
    Février 2006
    Messages
    368
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 368
    Points : 128
    Points
    128
    Par défaut
    Disons que le dataAdapter, OldConnection et le DataSet jes les ai créé 'physiquement' autrement dit par le moyen de l'interface graphique avec l'outil 'Boite à outil' et 'Donné'.....

    Ca change quelque chose ?

  6. #6
    Membre éprouvé
    Avatar de HULK
    Inscrit en
    Juillet 2003
    Messages
    1 276
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 276
    Points : 1 281
    Points
    1 281
    Par défaut
    si qqe part tu as crée en dataadapter, dans ton code tu dois avoir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    dataadapter.fill(dataset)
    or je ne le vois pas

  7. #7
    Membre habitué Avatar de lou87
    Profil pro
    Inscrit en
    Février 2006
    Messages
    368
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 368
    Points : 128
    Points
    128
    Par défaut
    Je suis désolée mais malgré le lien qui m'a été donné, qui fut intéressant, mais il ne m'expliqua pas grand chose...

    Disons qu'avec la fiche je n'ai pas réussi à trouver la solution à mon problème...

  8. #8
    Rédacteur
    Avatar de JauB
    Homme Profil pro
    Freelancer
    Inscrit en
    Octobre 2005
    Messages
    1 792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Maroc

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 792
    Points : 2 914
    Points
    2 914
    Par défaut
    essaie de déclarer un DataAdapter dans ton code et execute la fonction Fill de ce dataadapter sur le DataSet comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    dim da as new DataAdapter
    dim ds as new DataSet
    da.Fill(ds)
    listder_cellule.DataSource = ds.Tables(0)      
    listder_cellule.DataTextField ="CELLULE "
    ça doit marcher comme ça!

  9. #9
    Membre habitué Avatar de lou87
    Profil pro
    Inscrit en
    Février 2006
    Messages
    368
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 368
    Points : 128
    Points
    128
    Par défaut
    Un collègue de boulot à réussi à résoudre mon problème !!!!

    Et je remercie Hulk de m'avoir aidé, mais ça fiche ne m'étais pas d'un grand secours....

    Je vais essayer d'expliquer pourquoi...

    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
    41
    Private Sub listder_cellule_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles listder_cellule.Click
     
            Dim myDSCellule As DataTable = New DataTable
            'Private myDSCellule As DataTable
            'Il faut créer un objet connexion:
            Dim MyConnexion As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & _
            "source")
            'Il faut donner les paramètres Provider= et Data source=
            'Dans le cas d'une base Access le provider (le moteur à utiliser est le moteur OLEDB Jet 4.
     
            'Il faut créer un objet Command:
            Dim Mycommand As OleDbCommand = MyConnexion.CreateCommand()
     
            'Il faut donner dans la propriété CommandText la requête SQL 
            'permettant d'extraire ce que l'on désire.
            Mycommand.CommandText = "requête"
     
            'Ici dans la table HDC_VW_SC_USER, on extrait le champ CELLULE
     
            'Il faut ouvrir la connexion:
            MyConnexion.Open()
     
            'Il faut créer un objet DataReader:
            Dim myReader As OleDbDataReader = Mycommand.ExecuteReader()
     
            'On crée une boucle permettant de lire les enregistrements les uns après les autres, 
            'on récupère le champ (0) qui est un String, on la met dans la ListBox
            Do While myReader.Read()
     
                If myReader.IsDBNull(0) = False Then
                    listder_cellule.Items.Add(myReader.GetString(0))
                End If
     
            Loop
     
            'On ferme pour ne pas monopoliser.
            myReader.Close()
            MyConnexion.Close()
     
     
        End Sub

    C'est ce qui est en gras qu'il fallait rajouter/modifier pour que cela marche. Car le GetString, n'aime pas retourner de valeur nulle, c'est
    tout...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If myReader.IsDBNull(0) = False Then
                    listder_cellule.Items.Add(myReader.GetString(0))
                End If

  10. #10
    Rédacteur
    Avatar de JauB
    Homme Profil pro
    Freelancer
    Inscrit en
    Octobre 2005
    Messages
    1 792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Maroc

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 792
    Points : 2 914
    Points
    2 914
    Par défaut
    mm je vois pas l'utilité de faire des boucles pour remplir la liste puisque t'as l'objet DataSet rempli et que tu peux le passer à ta liste comme source de données et d'en choisir juste le libéllé à afficher ( ici c'est le champs CELULLE'!
    mais bon puisque ça marche ....
    Bon Courage 8)

  11. #11
    Membre habitué Avatar de lou87
    Profil pro
    Inscrit en
    Février 2006
    Messages
    368
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 368
    Points : 128
    Points
    128
    Par défaut
    Et bien si car si tu met pas de boucle et que dans ta requête il se trouve une valeur nulle, le programme au lieu de te retourner une valeur, il t'envoie un message d'erreur...

    ^^

  12. #12
    Rédacteur
    Avatar de JauB
    Homme Profil pro
    Freelancer
    Inscrit en
    Octobre 2005
    Messages
    1 792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Maroc

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 792
    Points : 2 914
    Points
    2 914
    Par défaut
    Ah je suis tout à fait d'accord avec toi mnt

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/09/2014, 18h29
  2. Réponses: 9
    Dernier message: 20/07/2013, 12h30
  3. [C#.net] Connection à une base de donnée sqlserver
    Par abbd dans le forum Windows Forms
    Réponses: 10
    Dernier message: 08/01/2008, 21h04
  4. Réponses: 0
    Dernier message: 05/12/2007, 06h20

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