En effet j'ai du mal avec un combo à récupérer le id d'un enregistrement dans une table et le stocker dans un textbox, lorsque je fais (click sur une séléction.
Quelqu'un peut m'aider svp?
En effet j'ai du mal avec un combo à récupérer le id d'un enregistrement dans une table et le stocker dans un textbox, lorsque je fais (click sur une séléction.
Quelqu'un peut m'aider svp?
Bonjour,
Peut-être te suffirait-il d'affecter l'Id à la propriété ValueMember du ComboBox au moment de son remplissage.
Montre-nous le code de lecture de la DB et de remplissage des contrôles d'affichage, nous aurons plus facile pour t'aider.
...![]()
Je ne sais pas comment récupérer le id (CodTypeCadreVie) à partir de ce code.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Private Sub typeCadreVie() cn.Open() Dim str As String = "Select * from TypeCadreVie" cmd = New SqlCommand(str, cn) dr = cmd.ExecuteReader While (dr.Read) Me.cb_TypeCadreVie.Items.Add(dr("LibTypeCadreVie")).ToString() End While dr.Close() cn.Close() End Sub
Sinon si vous avez meilleure proposition de code pour récupérer le id, je serai sauvé. Merci!
Bonjour,
Je te propose de remplacer ton code par le suivant.
Après ce changement, tu devrais avoir accès à l'Id par : cb_TypeCadreVie.SelectedValue.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 ' Doit être visible dans tout le Form car cette table sera liée au ComboBox Dim UneTable As DataTable ' ... ... Private Sub typeCadreVie() cn.Open() Dim str As String = "Select * from TypeCadreVie" UneTable = New DataTable Dim da As SqlDataAdapter = New SQLDataAdapter(str, cn) MonAdapter.Fill(UneTable) UneTable.TableName = "TypeCadreVie" da.Dispose() cn.Close() cb_TypeCadreVie.DataSource = UneTable cb_TypeCadreVie.DisplayMember = "LibTypeCadreVie" cb_TypeCadreVie.ValueMember = "CodTypeCadreVie" End Sub
L'usage du DataAdapter à la place du DataReader facilite les liaisons des données contenues dans des DataTable aux contrôles d'affichage.
J'espère que ceci t'aidera ...
Bonjour,
Je rejoins Phil Rob sur le sujet mais pour ma part je passe par une méthodes dans une classe affin de pouvoir les réutiliser!
par exemple la fonction OpenDataTable.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 Private Sub typeCadreVie() cn.Open() withe Me.cb_TypeCadreVie .dataSource =OpenDataTable("Select * from TypeCadreVie",CN) .DisplayMember="LibTypeCadreVie" .ValueMember ="CodTypeCadreVie" cn.Close() End Sub Public Function OpenDataTable(ByVal Sql As String,SQLConn as SqlConnection ) As DataTable Try Using dataadapter As New SqlDataAdapter Using cmd As New SqlCommand(Sql, SQLConn) cmd.CommandTimeout = 60 dataadapter.SelectCommand = cmd Dim ds As New DataTable dataadapter.Fill(ds) Return ds End Using End Using Catch ex As Exception Return Nothing End Try End Function
Merci infiniment beaucoup !!!! Vous avez été d'un grand secours, j'ai essayé toutes les
2 procédures, elles marchent! maintenant j'ai l'embarras du choix pour la suite.
Merci infiniment encore une fois à vous deux !
Partager