Boucle en vb.net

Résolu
spamito Messages postés 183 Date d'inscription samedi 24 mars 2007 Statut Membre Dernière intervention 30 mars 2013 - 28 sept. 2008 à 20:07
spamito Messages postés 183 Date d'inscription samedi 24 mars 2007 Statut Membre 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

8 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
29 sept. 2008 à 17:02
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
3
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
28 sept. 2008 à 20:30
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
0
spamito Messages postés 183 Date d'inscription samedi 24 mars 2007 Statut Membre Dernière intervention 30 mars 2013
29 sept. 2008 à 03:43
J'ai déjà essayé cela mais ça ne marche pas, j'obtiens juste un seul enregistrement.
0
spamito Messages postés 183 Date d'inscription samedi 24 mars 2007 Statut Membre Dernière intervention 30 mars 2013
29 sept. 2008 à 05:45
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
29 sept. 2008 à 09:00
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
0
spamito Messages postés 183 Date d'inscription samedi 24 mars 2007 Statut Membre Dernière intervention 30 mars 2013
29 sept. 2008 à 16:32
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.
0
spamito Messages postés 183 Date d'inscription samedi 24 mars 2007 Statut Membre Dernière intervention 30 mars 2013
29 sept. 2008 à 23:52
Ouiiiiiiiiiiiiii ça marche parfaitement, merci beaucoup cher ami.
0
spamito Messages postés 183 Date d'inscription samedi 24 mars 2007 Statut Membre Dernière intervention 30 mars 2013
30 sept. 2008 à 00:02
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
0
Rejoignez-nous