spamito
Messages postés183Date d'inscriptionsamedi 24 mars 2007StatutMembreDernière intervention30 mars 2013
-
28 sept. 2008 à 20:07
spamito
Messages postés183Date d'inscriptionsamedi 24 mars 2007StatutMembreDernière intervention30 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 :
s = "SELECT fournisseurs.fournisseur FROM fournisseurs ORDER BY fournisseurs.fournisseur DESC;"
Dim myCommand As New SqlCommand(s, conn)
Dim myReader As SqlDataReader = myCommand.ExecuteReader()
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 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()
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 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
spamito
Messages postés183Date d'inscriptionsamedi 24 mars 2007StatutMembreDernière intervention30 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
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 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.
spamito
Messages postés183Date d'inscriptionsamedi 24 mars 2007StatutMembreDernière intervention30 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.