Alimenter datagrid via combobox (Urgent)
softlane
Messages postés
37
Statut
Membre
-
softlane Messages postés 37 Statut Membre -
softlane Messages postés 37 Statut Membre -
Bonjour,
j'utilise visual studio 2008 pour développer une application de gestion des vacations. Benh voilà g un formulaire sur lequel je voudrai faire apparaître dans un datagrid les différentes vacations effectuées par un professeur en ayant sélectionné dans un combobox, le matricule de ce prof.
je programme sous VB2008 et voilà un moment ke je bute sur ce problème.
Merci de me répondre svp
j'utilise visual studio 2008 pour développer une application de gestion des vacations. Benh voilà g un formulaire sur lequel je voudrai faire apparaître dans un datagrid les différentes vacations effectuées par un professeur en ayant sélectionné dans un combobox, le matricule de ce prof.
je programme sous VB2008 et voilà un moment ke je bute sur ce problème.
Merci de me répondre svp
A voir également:
- Alimenter datagrid via combobox (Urgent)
- Via michelin carte - Télécharger - Transports & Cartes
- ViaMichelin - Télécharger - Transports & Cartes
- Partager des photos via un lien - Guide
- Localisation via whatsapp - Guide
- Si plusieurs ordinateurs sont connectés à un réseau local via des prises murales - Forum TV & Vidéo
9 réponses
il faut utiliser l'interface graphique de VS. tu colles tes controls et tu les configures avec la petite poignée qui apparait sur chacun d'entre eux. avec un peu de pratique tu vas voir que c'est de la rigolade :
pour commencer tu crés un datasource qui te raméne la liste de tes profs avec une requete style "select matricule from profs order by matricule"
ensuite tu attaches ta combo à ce datasource.
ensuite tu crés un second datasource pour les vacations avec comme requete : "select vacations, machin, truc from table_vacations where matricule = @toto"
à la création, le datasource va reconnaitre le "@toto" et te demander ce que c'est : tu lui reponds que c'est un control, en l'occurence ta combobox, et que la valeur est "combo.selecteditem.text". l'interface graphique te guide tres bien pour faire tout ça.
et c'est fini : chaque fois que tu vas changer de matricule, la valeur renvoyée va etre fourni au second datasource qui va à son tour requeter la base avec le bon argument, pour ensuite remplir le datagrid.
CQFD LPG
pour commencer tu crés un datasource qui te raméne la liste de tes profs avec une requete style "select matricule from profs order by matricule"
ensuite tu attaches ta combo à ce datasource.
ensuite tu crés un second datasource pour les vacations avec comme requete : "select vacations, machin, truc from table_vacations where matricule = @toto"
à la création, le datasource va reconnaitre le "@toto" et te demander ce que c'est : tu lui reponds que c'est un control, en l'occurence ta combobox, et que la valeur est "combo.selecteditem.text". l'interface graphique te guide tres bien pour faire tout ça.
et c'est fini : chaque fois que tu vas changer de matricule, la valeur renvoyée va etre fourni au second datasource qui va à son tour requeter la base avec le bon argument, pour ensuite remplir le datagrid.
CQFD LPG
salut et merci bcp pour ta réponse mais je débute en vb.net et j'ai quelques difficultés avec les différents contrôles. j'ai réussi à charger le combobox de la liste des différents matricules mais en ce qui concerne le datagrid, j'arrive pas à le lier convenablement à une source de donnée comme tu me l'a indiqué. Désolé de te déranger autant. Merci d'avance
c'est une vraie galére en vb.net : beaucoup plus simple en asp.net.
je vais te trouver le code et je te fais passer tout ça.
je vais te trouver le code et je te fais passer tout ça.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bon, on va faire ultra simple :
au lieu de se faire chier avec les dataset, datadapter, sqlsources et autres databindings de VS, on va tout faire à la main :
tu mets sur ta form un combo box et un datagrid, c'est tout !
et dans le code tu mets ça : (tu changeras evidemment les requetes, les noms de serveur, de BD etc...)
dans cette exemple je requete une table "magasins" par rapport au champs "nom" sur la base "commandes" du serveur VLPG01\SQLexpress.
Imports System
Imports System.Data
Imports System.Data.SqlClient
Public Class Form1
Public i As Integer
Public sqlSelect As String
Public ConnSQL As New SqlConnection()
Public ReadSQL As SqlDataReader
Dim ev As System.EventArgs
Dim susername As String
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'remplissage de la combobox
ConnSQL.ConnectionString = "Data Source=vlpg01\sqlexpress;Initial Catalog=commandes;Integrated Security=SSPI"
ConnSQL.Open()
sqlSelect = "SELECT [mag_nom] FROM magasins"
Dim CommandSQL As New SqlCommand(sqlSelect, ConnSQL)
ReadSQL = CommandSQL.ExecuteReader()
Do While ReadSQL.Read()
ComboBox1.Items.Add(ReadSQL.GetValue(0))
Loop
ReadSQL.Close()
ConnSQL.Close()
End Sub
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
End Sub
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
'selection dans la combo
ConnSQL.ConnectionString = "Data Source=vlpg01\sqlexpress;Initial Catalog=commandes;Integrated Security=SSPI"
ConnSQL.Open()
sqlSelect = "SELECT * FROM magasins where mag_nom='" & ComboBox1.SelectedItem & "'"
Dim dt As New DataTable
Dim oSqlDataAdapter As New SqlDataAdapter(sqlSelect, ConnSQL)
oSqlDataAdapter.Fill(dt)
DataGridView1.AutoGenerateColumns = True
DataGridView1.DataSource = dt
DataGridView1.Refresh()
ReadSQL.Close()
ConnSQL.Close()
End Sub
End Class
amuses toi bien !
lpg
au lieu de se faire chier avec les dataset, datadapter, sqlsources et autres databindings de VS, on va tout faire à la main :
tu mets sur ta form un combo box et un datagrid, c'est tout !
et dans le code tu mets ça : (tu changeras evidemment les requetes, les noms de serveur, de BD etc...)
dans cette exemple je requete une table "magasins" par rapport au champs "nom" sur la base "commandes" du serveur VLPG01\SQLexpress.
Imports System
Imports System.Data
Imports System.Data.SqlClient
Public Class Form1
Public i As Integer
Public sqlSelect As String
Public ConnSQL As New SqlConnection()
Public ReadSQL As SqlDataReader
Dim ev As System.EventArgs
Dim susername As String
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'remplissage de la combobox
ConnSQL.ConnectionString = "Data Source=vlpg01\sqlexpress;Initial Catalog=commandes;Integrated Security=SSPI"
ConnSQL.Open()
sqlSelect = "SELECT [mag_nom] FROM magasins"
Dim CommandSQL As New SqlCommand(sqlSelect, ConnSQL)
ReadSQL = CommandSQL.ExecuteReader()
Do While ReadSQL.Read()
ComboBox1.Items.Add(ReadSQL.GetValue(0))
Loop
ReadSQL.Close()
ConnSQL.Close()
End Sub
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
End Sub
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
'selection dans la combo
ConnSQL.ConnectionString = "Data Source=vlpg01\sqlexpress;Initial Catalog=commandes;Integrated Security=SSPI"
ConnSQL.Open()
sqlSelect = "SELECT * FROM magasins where mag_nom='" & ComboBox1.SelectedItem & "'"
Dim dt As New DataTable
Dim oSqlDataAdapter As New SqlDataAdapter(sqlSelect, ConnSQL)
oSqlDataAdapter.Fill(dt)
DataGridView1.AutoGenerateColumns = True
DataGridView1.DataSource = dt
DataGridView1.Refresh()
ReadSQL.Close()
ConnSQL.Close()
End Sub
End Class
amuses toi bien !
lpg
ok merci bcp pour ta disponibilité
ya un message d'erreur lors de l'exécution au niveau de ConnSQL.
"Une erreur liée au réseau ou spécifique à l'instance s'est produite lors de l'établissement d'une connexion à SQL Server. Le serveur est introuvable ou n'est pas accessible. Vérifiez que le nom de l'instance est correct et que SQL Server est configuré pour autoriser les connexions distantes. (provider: Interfaces réseau SQL, error: 26 - Erreur lors de la localisation du serveur/de l'instance spécifiés)"
j'utilise une BD Access est-ce dû à celà?
ya un message d'erreur lors de l'exécution au niveau de ConnSQL.
"Une erreur liée au réseau ou spécifique à l'instance s'est produite lors de l'établissement d'une connexion à SQL Server. Le serveur est introuvable ou n'est pas accessible. Vérifiez que le nom de l'instance est correct et que SQL Server est configuré pour autoriser les connexions distantes. (provider: Interfaces réseau SQL, error: 26 - Erreur lors de la localisation du serveur/de l'instance spécifiés)"
j'utilise une BD Access est-ce dû à celà?