VB.Net la liaison datagridview Comboboxcolumn à datagridviewTextboxColumn
Je suis le chargement de données à partir de deux tables: institut et du pays. L'institut dispose de 3 colonnes: instId, nom, countryId. Et le pays dispose de 2 colonnes: countryId, nom de où countryId est une clé étrangère de la table country. - Je remplir ces deux tables dans le dataset. J'ai datagridview et définir sa source de données de l'institut de table dans mon dataset. J'ai aussi créer datagridviewcomboboxcolumn et le lier pays de table. Regardons le code suivant:
Public Class frmDGV
Dim sqlConn As SqlConnection
Dim dsOptions As DataSet
Dim daInstitute As SqlDataAdapter
Dim daAdapter As SqlDataAdapter
Dim bsCountry As BindingSource
Private Sub frmTest_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Try
dsOptions = New DataSet
loadOptions()
dgvInstitute.DataSource = dsOptions.Tables("institute")
bsCountry = New BindingSource(dsOptions, "country")
Dim col As New DataGridViewComboBoxColumn
col.DataPropertyName = "countryName"
col.HeaderText = "Country"
col.Name = "cName"
col.DataSource = bsCountry
col.DisplayMember = "countryName"
col.ValueMember = "countryId"
dgvInstitute.Columns.Add(col)
dgvInstitute.Columns(0).Width = 60
dgvInstitute.Columns(1).Width = 200
dgvInstitute.Columns(2).Width = 60
dgvInstitute.Columns(3).Width = 120
Catch ex As Exception
MsgBox(Err.Description)
End Try
End Sub
Sub loadOptions()
Dim sql As String
Try
sqlConn = New SqlConnection(connString)
sqlConn.Open()
sql = "select instId, name, countryId from institute"
daInstitute = New SqlDataAdapter(sql, sqlConn)
daInstitute.Fill(dsOptions, "institute")
'----------------------------------------------------------------------
sql = "select countryId, countryName from country"
daAdapter = New SqlDataAdapter(sql, sqlConn)
daAdapter.Fill(dsOptions, "country")
'----------------------------------------------------------------------
sqlConn.Close()
Catch ex As Exception
sqlConn.Close()
MsgBox(Err.Description)
End Try
End Sub
End Class
Comment puis-je afficher le bon nom de pays dans la zone de liste déroulante basée sur la countryId dans le datagridview en utilisant les techniques de liaison pas de l'aide d'une boucle?
Voir l'image suivante:
OriginalL'auteur Hilal Al-Rajhi | 2014-01-13
Vous devez vous connecter pour publier un commentaire.
Changement
DataPropertyName
pour comboboxcolumn dans votre datagridview:.DataPropertyName
- est un nom de colonne dedatagridview.DataSource
,dont vous voulez afficher dans la colonne actuelle.Mon avis, que votre code doit travailler, ne changer une ligne dans ma réponse...
Je vous remercie, Monsieur Fabio, Vous avez raison. J'ai juste modifié le code et le coller la ligne:
col.DataPropertyName = "countryId"
Un grand merci pour vous tous les frères, Hilal Al-Rajhi qui a posé cette question dans un langage clair et excellent moyen de, et de "Fabio" qui obtiennent une nouvelle très utile de répondre, Vraiment des millions de merci pour vous bros, j'ai vraiment eu ce que je cherchais et j'ai été pense qu'il n'est pas possible, mais grâce à vous tous, encore une fois thankX ^_^
OriginalL'auteur Fabio
Pour être honnête, je ne sais pas si vous pouvez en raison de la façon dont vous avez lié.
Le pays de la colonne doivent être dans une zone de liste déroulante? Vous pouvez simplement inclure le nom du pays dans votre première requête.
La seule façon que je pouvais vraiment voir de la faire, ce serait quelque chose comme
OriginalL'auteur JohnyHarkness
OriginalL'auteur Yat Fei Leong