组合框未从与 datagridview 数据源不同的数据库表填充



>我的应用程序中有一个datagridview,其数据源设置为从数据库中的MemberInfo表中提取:

m_DataAdapt = New SqlDataAdapter("Select * FROM memberInfo ORDER BY lName ASC", m_DBConn)
m_CommBuild = New SqlCommandBuilder(m_DataAdapt)
m_DataSet = New DataSet()
m_DataAdapt.Fill(m_DataSet)
dgvMemberInfo.AutoGenerateColumns = False
dgvMemberInfo.DataSource = m_DataSet.Tables("Table")

这按预期工作,并为我提供了所有正确的列。但是,我希望排名和角色列是组合框,从数据库中的不同表中获取其选项:

https://i.stack.imgur.com/cQ3WQ.jpg

但是,当我运行应用程序并选择下拉列表时,它们是空的,并且没有抛出任何错误。据我目前所知,这应该有效。是否有我必须在其他地方执行的设置/代码行?

无论出于何种原因,在设计器中设置它没有任何作用,但通过代码设置相同的内容是有效的:

Dim b_rankAdapt As SqlDataAdapter
b_rankAdapt = New SqlDataAdapter("Select * From availRanks", m_DBConn)
Dim dt As DataTable
dt = New DataTable
b_rankAdapt.Fill(dt)
For Each iRow As DataGridViewRow In dgvMemberInfo.Rows
RankDataGridViewTextBoxColumn.DataSource = dt
RankDataGridViewTextBoxColumn.ValueMember = "rankID"
RankDataGridViewTextBoxColumn.DisplayMember = "rankName"
Next

我以前没有尝试过这个,因为我不知道我可以直接通过RankDataGridViewTextBoxColumn引用单元格。

最新更新