Problemes requêtes SQL dans command

cs_VanHouten Messages postés 2 Date d'inscription jeudi 17 novembre 2005 Statut Membre Dernière intervention 16 juillet 2012 - 15 oct. 2008 à 16:34
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 - 15 oct. 2008 à 21:56
Bonjour,
j'ai actuellement un petit prob.
j'essaye de remplir deux combobox  avec les instructions ci-dessous.
2 solutions l'une fonctionne correctement, mais je voudrais pouvoir utiliser l'autre (mise en commentaire dans l'exemple)

code ci-dessous :

Imports System
Imports System.Data
Imports System.Data.OleDb
Imports Microsoft.VisualBasic
Imports System.Windows.Forms

Public Class Form1
    Inherits System.Windows.Forms.Form

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim MyConnexion As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=insee.mdb")

        Dim Mycommand As OleDbCommand = MyConnexion.CreateCommand()
        Dim Mycommand1 As OleDbCommand = MyConnexion.CreateCommand()

        ' deux bases l'une contient les villes, l'autre le noms des dep.

        'Mycommand.CommandText = "SELECT VILLE FROM INSEE""+""SELECT NDEP FROM DEPT "   <---- problème ici surement

        Mycommand.CommandText = "SELECT VILLE FROM INSEE"
        Mycommand1.CommandText = "SELECT NDEP FROM DEPT"

        MyConnexion.Open()

        'solution qui ne fonctione pas en commentaire ?  POURQUOI!!!

        Dim myReader As OleDbDataReader = Mycommand.ExecuteReader()

        ' --- trouvé sur forum Microsoft ---------
        'Dim nextResult As Boolean = True
        'Do Until Not nextResult 
        'ComboBox1.Items.Add(myReader.GetString(0))

        'Do While myReader.Read()
        'ComboBox2.Items.Add(myReader.GetString(0))
        'Loop

        'nextResult = myReader.NextResult()
        'Loop
        ' -----------------------------------------

        'Ci-dessous solution qui fonctionne, mais qui ne me plait pas, du moins qui peut être améliorer sans doute.

        Do While myReader.Read()
            ComboBox1.Items.Add(myReader.GetString(0))
        Loop

        myReader.Close()

        Dim myReader1 As OleDbDataReader = Mycommand1.ExecuteReader()

        Do While myReader1.Read()
            ComboBox2.Items.Add(myReader1.GetString(0))
        Loop

        myReader1.Close()

        MyConnexion.Close()

    End Sub

End Class

merci de m'aider.

Rapetou

1 réponse

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
15 oct. 2008 à 21:56
Pourquoi ?

Tout simplement parce que tu ne peux pas exécuter 2 requettes renvoyant des résultants dans la même commande, il faut que tu les exécute l'une après l'autre

ExecuteReader n'est capable de te renvoyer qu'un jeu de résultat à la fois.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
Rejoignez-nous