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

Résolu
wassim0285 Messages postés 40 Date d'inscription lundi 23 mars 2009 Statut Membre Dernière intervention 11 juin 2010 - 25 mars 2009 à 08:39
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 - 27 mars 2009 à 11:15
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

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
26 mars 2009 à 22:32
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
3
wassim0285 Messages postés 40 Date d'inscription lundi 23 mars 2009 Statut Membre Dernière intervention 11 juin 2010
26 mars 2009 à 23:00
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
3
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
26 mars 2009 à 23:07
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
3
wassim0285 Messages postés 40 Date d'inscription lundi 23 mars 2009 Statut Membre Dernière intervention 11 juin 2010
26 mars 2009 à 23:19
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
3

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
26 mars 2009 à 23:34
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
3
wassim0285 Messages postés 40 Date d'inscription lundi 23 mars 2009 Statut Membre Dernière intervention 11 juin 2010
26 mars 2009 à 23:41
Merci encore casy, je vais essayer avec cette solution.

-- www.kerkennah.karkny.com --
3
wassim0285 Messages postés 40 Date d'inscription lundi 23 mars 2009 Statut Membre Dernière intervention 11 juin 2010
27 mars 2009 à 09:24
J'ai essayer avec le code suivant mais ça n'a pas fonctionné:
DataGridView1.DataSource = myreader1

www.kerkennah.karkny.com
3
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
27 mars 2009 à 11:15
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
0
Rejoignez-nous