Boucle en vb.net [Résolu]

Messages postés
183
Date d'inscription
samedi 24 mars 2007
Dernière intervention
30 mars 2013
- 28 sept. 2008 à 20:07 - Dernière réponse :
Messages postés
183
Date d'inscription
samedi 24 mars 2007
Dernière intervention
30 mars 2013
- 30 sept. 2008 à 00:02
Bonsoir,

Je possède une base de donnée SQL Server 2008 et VB 2008. Je suis tout à fait débutant dans ces produits et j'aimerai effectuer une boucle pour remplir un combobox, avec VB 6 je mets :

do until rs.EOF
fournisseur.AddItem = rs.field(0)
fournisseur.movenext
loop

Mais avec VB 2008 ça ne marche pas. Voici mon code sans la boucle :

conn.ConnectionString = "Persist Security Info=False;Integrated Security=SSPI;database=BASE;server=EITIACONSULTING"
conn.Open()

s = "SELECT fournisseurs.fournisseur FROM fournisseurs ORDER BY fournisseurs.fournisseur DESC;"
Dim myCommand As New SqlCommand(s, conn)
Dim myReader As SqlDataReader = myCommand.ExecuteReader()

myReader.Read()

fournisseur.Text = myReader("fournisseur")

myReader.Close()

Aidez moi SVP. Merci
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Dernière intervention
24 septembre 2014
- 29 sept. 2008 à 17:02
3
Merci
Oupsss, excuse moi, j'avais zappé la notion de combobox dans ton code.

La lecture du retour de la requette est bonne, c'est par contre le remplissage du combo qui ne l'est pas cette fois-ci.

s = "SELECT fournisseurs.fournisseur FROM fournisseurs ORDER BY fournisseurs.fournisseur DESC;"
Dim myCommand As New SqlCommand(s, conn)
Dim myReader As SqlDataReader = myCommand.ExecuteReader()

While myReader.Read()
    fournisseur.Items.Add(myReader("fournisseur"))
End While
myReader.Close()

Comme ça, ça devrait aller mieux

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

Merci cs_casy 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de cs_casy
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Dernière intervention
24 septembre 2014
- 28 sept. 2008 à 20:30
0
Merci
c'est guère plus compliqué :

s = "SELECT fournisseurs.fournisseur FROM fournisseurs ORDER BY fournisseurs.fournisseur DESC;"
Dim myCommand As New SqlCommand(s, conn)
Dim myReader As SqlDataReader = myCommand.ExecuteReader()

While myReader.Read()
    fournisseur.Text = myReader("fournisseur")
End While

myReader.Close()

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Commenter la réponse de cs_casy
Messages postés
183
Date d'inscription
samedi 24 mars 2007
Dernière intervention
30 mars 2013
- 29 sept. 2008 à 03:43
0
Merci
J'ai déjà essayé cela mais ça ne marche pas, j'obtiens juste un seul enregistrement.
Commenter la réponse de spamito
Messages postés
183
Date d'inscription
samedi 24 mars 2007
Dernière intervention
30 mars 2013
- 29 sept. 2008 à 05:45
0
Merci
Voici mon code :

Private Sub Demandes_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
 
        Dim cn As New ADODB.Connection
        cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;data source=" & Application.StartupPath & "\BASE.mdb"
        cn.Open()

        Dim rs As New ADODB.Recordset
        rs.CursorLocation = ADODB.CursorLocationEnum.adUseServer
        rs.CursorType = ADODB.CursorTypeEnum.adOpenKeyset
        rs.LockType = ADODB.LockTypeEnum.adLockPessimistic
        rs.ActiveConnection = cn
        rs.Open("SELECT Clients.Intitule FROM Clients ORDER BY Clients.Intitule DESC", cn)

        Do Until rs.EOF
            Me.client.Text = rs.Fields(0).Value
            rs.MoveNext()
        Loop

    End Sub
Commenter la réponse de spamito
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Dernière intervention
24 septembre 2014
- 29 sept. 2008 à 09:00
0
Merci
C'est pourtant bien comme cela que ça s'utilise.

Par contre dans ton second code, tu utilise les anciens controles ADO avec une base Access, hors tu parlais dans le premier message d'une base SQLServer. Qu'en est-il de la réalité.

En .Net il est fortement recommander d'abandonner les anciens controles ADO et d'utiliser à la place les classes ADO.Net.

Si tu es avec une base SQLServer il te faut utiliser les classes de la famille SQLClient. Par contre avec une base Access il faudra passer par les classes OleDB.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Commenter la réponse de cs_casy
Messages postés
183
Date d'inscription
samedi 24 mars 2007
Dernière intervention
30 mars 2013
- 29 sept. 2008 à 16:32
0
Merci
Ma base de données est sur SQL Server, c'était juste une erreur que j'ai faite. J'ai repris votre code avec le mien mais ça ne marche pas, j'ai toujours un seul enregistrement dans mon combobox.
Commenter la réponse de spamito
Messages postés
183
Date d'inscription
samedi 24 mars 2007
Dernière intervention
30 mars 2013
- 29 sept. 2008 à 23:52
0
Merci
Ouiiiiiiiiiiiiii ça marche parfaitement, merci beaucoup cher ami.
Commenter la réponse de spamito
Messages postés
183
Date d'inscription
samedi 24 mars 2007
Dernière intervention
30 mars 2013
- 30 sept. 2008 à 00:02
0
Merci
Puisque je suis débutant en vb.net et SQL Server, j'aimerai savoir si cette méthode que j'utilise est bonne ou pas et si elle est sécurisée ou pas.

Merci
Commenter la réponse de spamito

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.