Affichage du résultat d'une requête dans une zone texte en vb.net [Résolu]

Signaler
Messages postés
40
Date d'inscription
lundi 23 mars 2009
Statut
Membre
Dernière intervention
11 juin 2010
-
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
-
Je suis encore débutant en vb.net, je veut afficher le résultat de la requête suivante (select ref_produit from produit where ref_produit =1) dans une zone textbox
merci d'avance

8 réponses

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
36
J'imagine que tu sais te connecter à une base de donnée. Si ce n'est pas le cas, je t'invite à regarder les différentes sources qui traitent du sujet, ici, ou sur le net, ainsi que divers tutoriaux.

Dans le cas présent, il te faut donc un objet connection, un objet commande.
Dans ton cas, tu utilisera plutot la méthode ExecuteScalar de ton objet commande

ExecuteScalar te renvoie la première colonne de la première ligne du jeu de résultat renvoyé par ta requette. Il ne te restera plus qu'à mettre cela dans ta textbox.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
40
Date d'inscription
lundi 23 mars 2009
Statut
Membre
Dernière intervention
11 juin 2010

Merci bien pour cette réponse.
Je veux vous informer que j'ai déja trouver une solution qui est la suivante:

Try
   Dim comm As New SqlCommand
   comm.CommandText="Select ref_pr from produit where ref_pr=21"
   comm.Connection=Connexion 'connection est le nom de la connexion
   Dim myreader as SqlDataReader=comm.Executereader
   Dim vt As String
   If myreader.Read then
      vt=myreader(0).ToString
      TextBox.Text=vt
   End If
   myreader.Close()
Catch ex As Exception
   MsgBox(ex.ToString)
End Try
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
36
Tout à fait, c'est valable

L'utilite de la méthode ExecuteScalar, c'est que ton code pourrait s'écrire comme ceci :

Try
   Dim comm As New SqlCommand
   comm.CommandText="Select ref_pr from produit where ref_pr=21"
   comm.Connection=Connexion 'connection est le nom de la connexion
   TextBox.Text=comm.ExecuteScalar
Catch ex As Exception
   MsgBox(ex.ToString)
End Try

Ou, si tu as un message d'erreur
TextBox.Text=CType(comm.ExecuteScalar,string)

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
40
Date d'inscription
lundi 23 mars 2009
Statut
Membre
Dernière intervention
11 juin 2010

merci casy, comme ça le code devient plus court et plus compréhensible.
mais j'ai un autre probléme qui est le suivant:
Je veut remplir un datagridview apartir de la requête suivante:
"select ref-pr, lib_pr, qte_pr from produit"
sans passer par le dataset
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
36
Si c'est uniquement pour de l'affichage, tu peux utiliser le datareader.

Tu le remplie avec la méthode ExecuteReader comme dans ton code.
Il ne te reste qu' l'associé à la propriété DataSource de ta DataGridView et normalement il devrait s'afficher tout seul.
Il faudra peut-etre au préalable vider la DGV, je crois qu'il existe une méthode Clear ou un genre comme ça.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
40
Date d'inscription
lundi 23 mars 2009
Statut
Membre
Dernière intervention
11 juin 2010

Merci encore casy, je vais essayer avec cette solution.

-- www.kerkennah.karkny.com --
Messages postés
40
Date d'inscription
lundi 23 mars 2009
Statut
Membre
Dernière intervention
11 juin 2010

J'ai essayer avec le code suivant mais ça n'a pas fonctionné:
DataGridView1.DataSource = myreader1

www.kerkennah.karkny.com
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
36
J'étais persuadé que ça marchait aussi avec un datareader, apparement non.
tu vas etre onbligé de passer par un dataset et un dataadapter

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