SQL et datagridview [VB 2008 Express]

Résolu
cedricbollini Messages postés 16 Date d'inscription jeudi 1 mai 2008 Statut Membre Dernière intervention 9 janvier 2011 - 16 sept. 2009 à 23:20
dorra004 Messages postés 9 Date d'inscription vendredi 25 février 2011 Statut Membre Dernière intervention 22 mars 2011 - 7 mars 2011 à 23:58
Bonsoir,

Etant débutant en VB2008 Express,

Je n'arrive pas trouver la syntaxe pour remplir une DataGridView avec le résultat d'une requète SQL du
genre : SELECT ..... FROM ..... WHERE....

Le but étant de filtrer les données d'une table et d'afficher le résultat dans une DataGridView.

Merci d'avance.

12 réponses

cedricbollini Messages postés 16 Date d'inscription jeudi 1 mai 2008 Statut Membre Dernière intervention 9 janvier 2011
19 sept. 2009 à 11:13
Bonjour,

Effectivement Mayzz, j'ai pris cette solution pour effectuer mon filtre, j'ai trouver cette solution hier soir,

j'ai effectivement créer une nouvelle procédure avec le filtre souhaité puis j'ai effectivement utilisé le
SmartTag pour charger la base dans mon DataGridView, aucune ligne de code à taper, c'est magique :)

il a juste fallu que je modifie la ligne de code généré automatiquement pour appelé ma nouvelle procédure ce qui donne:

'Ligne de code généré automatiquement :
Me.Soins_effecTableAdapter.Fill(Me.Gestion_clientèle.Soins_effec)

'Ligne de code modifiée pour appliquer le filtre créer
Me.Soins_effecTableAdapter.FillBy(Me.Gestion_clientèle.Soins_effec, Tri_Nom_Client, Tri_Prenom_client)

'FillBy étant la procédure que j'ai créer




Merci à vous deux pour aide,
3
dp_favresa Messages postés 132 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 11 mai 2010
17 sept. 2009 à 15:15
Bonjour,

J'utilise la méthode suivante :
Dim Vue As New DataView(dsBL.Tables("DREF"))
DataGridView.DataSource = Vue

où dsBL est le nom de ma variable "DataSet" et
"DREF" est le nom de ma table venant de la clause FROM

Pour faciliter la lecture, je formate aussi le DataGridView
'    Taille de police
Dim Fo As New System.Drawing.Font("Arial", 10)
DataGridView.Font = Fo
'    Fixer la largeur de colonne
DataGridView.Columns(0).Width = 100
'    En-tête de colonne (titre)
DataGridView.Columns(0).HeaderText = "Dossier"

J'espère que cela te conviendra

Cordiales salutations et bonne prog
dp
0
cedricbollini Messages postés 16 Date d'inscription jeudi 1 mai 2008 Statut Membre Dernière intervention 9 janvier 2011
17 sept. 2009 à 21:49
Bonsoir,

merci pour ta réponse dp_favresa,

désolé mais malgrès ton aide je n'arrive toujours à faire ce que je veux,

Je n'ai peut être pas assez détaillé mon problème,

je vais donc essayé d'être plus précis :

j'ai une requête SQL que j'ai créer sous VB2008
qui à pour syntaxe GetDataBy(@Nom_client,@Prénom_client) qui correspond en fait à la requête suivante :

SELECT Date, Num_facture, Nom_client, Prenom_client, Soin, Type_soin, Observation, D, M
FROM Soins_effec
WHERE (Nom_client LIKE @Nom_client) AND (Prenom_client LIKE @Prénom_client)

C'est le résultat de cette requête que je voudrais afficher dans une DataGridView,
mais malgrès ton aide , je ne vois toujours pas comment faire.

merci d'avance
0
dp_favresa Messages postés 132 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 11 mai 2010
18 sept. 2009 à 07:34
Bonjour,

Il semble que nous n'utilisons pas la même méthode.
Les résultats de mes requêtes sont stockés dans des DataSet.
Qu'en est-il de ton côté ?

Cordiales salutations et bonne prog
dp
0

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

Posez votre question
cedricbollini Messages postés 16 Date d'inscription jeudi 1 mai 2008 Statut Membre Dernière intervention 9 janvier 2011
18 sept. 2009 à 10:29
Bonjour,

Ben justement, je ne sais pas comment stocker le
résultat de ma requête.

Sous VB6, je stocker le résultat dans un recordset,
mais sous VB2008 ???

Cordialement,

cédric
0
dp_favresa Messages postés 132 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 11 mai 2010
18 sept. 2009 à 15:03
Bonjour,

Je te mets ci-dessous ma façon de faire :
'   Variables
Public strSql As String                 '   Requête SQL
Public strConn As String                '   Paramètres de la connexion à SQL
Public conn As SqlConnection
Public CmdS As SqlCommand
Public da As SqlDataAdapter
Public dsBL As New DataSet()            '   Dataset des bulletins de livraison
'   String de connexion à SQL
strConn = "Initial Catalog=Nom_de_la_base;Data Source=Nom_du_serveur;User ID=SQLuser;Password=;"
'   Requête SQL
strSql = "SELECT ... FROM ... WHERE ..."
'   Connexion à la base, sélection des données
conn = New SqlConnection(strConn)
conn.Open()
CmdS = New SqlCommand(strSql)
da = New SqlDataAdapter(CmdS)
CmdS.Connection() = conn
'   Vidage du DataSet (si besoin)
dsBL.Clear()
'   Remplissage du DataSet
da.Fill(dsBL, "Nom_de_la_table_de_la_clause_FROM")
'   Fermeture de la connexion (si besoin)
conn.Close()

Tu peux ensuite charger le DataGridView depuis ce DataSet comme
indiqué dans mon 1er message.

Cordiales salutations et bonne prog
dp

PS Je serai absent et dans l'incapacité de te répondre
jusqu'à mardi 22.09
0
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
19 sept. 2009 à 04:03
cedricbollini> Tu utilises un Dataset fortement typé, tu as donc l'avantage de pouvoir utiliser les requêtes contenus dans celui-ci pour remplir des contrôles sans avoir à saisir aucune ligne de code en VB.

Beaucoup de contrôles en .Net disposent de SmartTag, cette petite flèche en haut à droite lors ce que tu sélectionne un contrôle sur ton formulaire en mode design. Pour le DataGridView, utilise la liste déroulante "Choisir la souce de données", puis développe les sources de données de ton projet, tu y retrouvera ton dataset, développe celui-ci, puis choisi la table à afficher dans ton DataGridView (Celle-ci doit avoir été créé dans le DataSet FT).

Lance l'application et Hop ! Magie...

Pour ce qui est du reste, si tu débute en VB.Net, au même titre que tout le monde je te conseille => Ici

++ Mayzz.

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
0
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
19 sept. 2009 à 14:41
Re,

Qelle est ta requête FillBy ?

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
0
cedricbollini Messages postés 16 Date d'inscription jeudi 1 mai 2008 Statut Membre Dernière intervention 9 janvier 2011
19 sept. 2009 à 21:38
Re,

c'est le nom de la nouvelle procédure que j'ai créé dans le concepteur de DataSet,

elle correspond à la requête SQL suivante :

SELECT Date, Num_facture, Nom_client, Prenom_client, Soin, Type_soin, Observation, D, M
FROM Soins_effec
WHERE (Nom_client LIKE @Nom_client) AND (Prenom_client LIKE @Prénom_client)


cordialement,

Cédric
0
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
19 sept. 2009 à 22:45
Si je t'ai demandé ca, c'était juste pour t'apporter une petite précision sur l'accès au données via un DataSet fortement typé.

Tu as du surement remarqué que lors de l'ajout d'une source de données à ton DataGridView, le concepteur Windows Form crée un BindingSource, tu peux aussi te servir de sa propriété 'Filter' pour filtrer les lignes contenues dans les tables résultant de ta requête 'Select'.

La différence résulte en faite sur la performance du logiciel dans le cas d'un moteur de recherche. Trop de requêtes vers une base de données (lors d'une recherche), peut ralentir l'application, et inversement faire une requête trop 'Globale' peux être une perte de temps (chargement de ligne qui ne seront pas utilisés).

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
0
cedricbollini Messages postés 16 Date d'inscription jeudi 1 mai 2008 Statut Membre Dernière intervention 9 janvier 2011
20 sept. 2009 à 14:37
Bonjour,

OK merci à toi pour cette précision

Cordialement,

Cédric
0
dorra004 Messages postés 9 Date d'inscription vendredi 25 février 2011 Statut Membre Dernière intervention 22 mars 2011
7 mars 2011 à 23:58
Bonsoir,
j'ai un gros problème avec le bouton supprimer pour supprimer une ligne de la base se donné.
Pouvez-vous m'aider SVP?
Merci d'avance
0
Rejoignez-nous