Votre question

Remplir Combobox avec requête SQL vb.net

Tags :
  • Sql
  • Programmation
Dernière réponse : dans Programmation
27 Janvier 2010 15:17:10

[:-the joker-:1] à tous,

J'ai un petit problème à vou présenter :
Je travaille sous Visual Studio 2005, en VB.NET et je voudrais remplir un combobox d'une form avec une requête SQL.
J'ai déjà créer un dataset, les datatables, les tableadapters pour les requêtes où j'en ai besoins. Enfin bref de ce côté là ça va.

Voilà mon code pour remplir la combobox :
  1. Private Sub choix_PN_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  2.  
  3. Dim sqlstring as string
  4. sqlstring = "SELECT PartNumber FROM Sequence GROUP BY PartNumber ORDER BY PartNumber"
  5. Dim SQL_TA As New System.Data.SqlClient.SqlDataAdapter(sqlstring, conn)
  6. SQL_TA.Fill(SQL_DT)
  7.  
  8. PN_CB.DataSource = SQL_DT
  9. PN_CB.DisplayMember = "PartNumber"
  10. PN_CB.ValueMember = "PartNumber"
  11. End Sub


Avec PN_CB étant mon combobox, SQL_DT est une datatable créée.

Cela ne remplit malheureusement pas mon combobox, et j'ai une messagebox qui s'affiche deux fois de suite, elle est vide, et ce juste avant l'ouverture de ma form choix_PN.

Sinon, j'ai une requête créée dans mon dataset ( exactement la même chose que ma requête SQL). Voilà le code pour remplir mon combobox avec cette requête du dataset :
  1. Call PARTNUMBER_TA.PARTNUMBER(PARTNUMBER_DT)
  2. PN_CB.DataSource = PARTNUMBER_DT
  3. PN_CB.DisplayMember = "PartNumber"
  4. PN_CB.ValueMember = "PartNumber"


Avec PARTNUMBER étant ma requête créée dans le dataset, PARTNUMBER_DT une datatable, PARTNUMBER_TA est un tableadapter.

Voilà, merci de votre aide, et si vous avez besoins d'autres renseignements, bein..... je suis là !! :D 

Merci encore

SliverPopop

Autres pages sur : remplir combobox requete sql net

Anonyme
6 Février 2010 14:53:36

Bonjour,
Je vois que vous êtes un pro du VB.NET et je voudrais que vous m'aider un résoudre un petit souci :
Je travail sur une petite appli sur vb.net avec access comme SGBD , j'ai crée un data grid et j arrive a afficher un form avec les une table xxx dans ce form je fais des isies pour rentrer des données et j'ai un cobobox lié a une requette access sauf que qd j ai fais le lien ma liste ne s'affiche pas sur le combobox ?
pouvez vous m'aider a ce sujet
Merci d'avance.
m
0
l
10 Février 2010 08:55:21

Voici l'exemple de code pour remplir ton combobox :

Dim conn_string As String
Dim req_str As String
Dim dttable As New DataTable

conn_string = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & name_database

req_str = " Ta requête SQL"


Using conn As New OleDb.OleDbConnection(conn_string)
Dim cmd As New OleDb.OleDbCommand(req_str, conn)

conn.Open()

Dim dt_reader As OleDb.OleDbDataReader = cmd.ExecuteReader
id_dttable.Load(id_dt_reader)

With my_combobox
.DataSource = dttable
.DisplayMember = "nom de ton champ à afficher"
.ValueMember = "nom de ton champ à afficher"
.


End With

dt_reader.Close()

conn.Close()

End Using

En espérant t'avoir aider, si tu as d'autre questions...

A+

SliverPopop

PS : J'ai résolu mon problème initial, c'est bon pour moi.
m
0
l
Contenus similaires
a c 232 L Programmation
10 Février 2010 23:45:55

Salut,

Pourrais-tu donner la solution à ton problème, ça pourrait aiguiller une personne qui aurait le même soucis.

A vue de nez comme ça, j'aurais dit que le soucis est qu'il faut initialiser les propriété DisplayMember et ValueMember avant de spécifier la DataSource, mais il y a peut être d'autres soucis.
m
0
l
11 Février 2010 08:46:43

Salut,

Bien sur, voici le code que j'ai utilisé :

Dim pn_req_str As String
Dim pn_conn_string As String
Dim pn_DTT As New DataTable

pn_conn_string = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & name_database

pn_req_str = " SELECT PartNumber FROM Sequence GROUP BY PartNumber"

Using pn_conn As New OleDb.OleDbConnection(pn_conn_string)
Dim pn_cmd As New OleDb.OleDbCommand(pn_req_str, pn_conn)

pn_conn.Open()

Dim d_reader As OleDb.OleDbDataReader
d_reader = pn_cmd.ExecuteReader
pn_DTT.Load(d_reader)

With PN_CB
.DataSource = pn_DTT
.DisplayMember = "PartNumber"
.ValueMember = "PartNumber"
End With

d_reader.Close()
pn_conn.Close()

End Using


J'ai copié mon code directement donc, il faut comprendre à quoi correspondent les champs comme "PartNumber" ou comprendre les noms de variables, mais je pense que c'est faisable, c'est quand même assez explicite, dites moi si ya un problème.

SliverPopop

PS : c'est toi omar le pro du vb.net de la rubrique programmation dont on m'a parlé ?
m
0
l
a c 232 L Programmation
11 Février 2010 11:52:45

Merci pour la solution.

Citation :
PS : c'est toi omar le pro du vb.net de la rubrique programmation dont on m'a parlé ?

Euh, je ne pense pas :)  Je suis plus C# moi, j'arrive à lire le VB approximativement, mais je serai bien incapable d'en écrire de tête.
m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS