Vb.net Datagridview列索引在绑定到datatable时发生更改

Vb.net Datagridview列索引在绑定到datatable时发生更改,vb.net,visual-studio,datagridview,Vb.net,Visual Studio,Datagridview,我在datagridview中有两个datragridviewcomboboxcolumn和两个textbox列。每个combobox列都绑定到单独的绑定源 列名包括序号、列名称、列工作类型、列小时数等 displaymember、datapropertyname、valuemember和for comboxcolumn是 col_empname:-emp_名称、emp_id、emp_id col_empworktype:-工作类型名称、工作类型ID、工作类型ID 我的问题是 当我将数据绑定到g

我在datagridview中有两个datragridviewcomboboxcolumn和两个textbox列。每个combobox列都绑定到单独的绑定源

列名包括序号、列名称、列工作类型、列小时数等 displaymember、datapropertyname、valuemember和for comboxcolumn是

col_empname:-emp_名称、emp_id、emp_id

col_empworktype:-工作类型名称、工作类型ID、工作类型ID

我的问题是

当我将数据绑定到gridview时,它会显示一个额外的列emp_idimage 1 当我选择combobox列时,它的列索引将更改 选择combox列后,将显示错误datagridview “Datagridviewcombobox值无效!” 在我的表单加载中,我指定了datapropertyname

Dim employeecolumn As DataGridViewComboBoxColumn = CType(grdWorkStatus.Columns("Col_EmpName"), DataGridViewComboBoxColumn) 
employeecolumn.DisplayMember = "emp_name" 
employeecolumn.ValueMember = "emp_Id" 
employeecolumn.DataPropertyName = "emp_Id" 
employeecolumn.DataSource = EmployeeSource 
所有这些问题只有在我将数据库中的数据绑定到grdiview更新grdiview数据时才会发生。否则我就可以存钱了,而且一切都很好


提前感谢。

当您将数据表绑定到DataGridView中时,它将绑定数据表中的所有列,因此如果您的数据表中有emp_id,那么它将显示在DataGridView中


您可能需要在dataGridView中创建emp_id列,对emp_id列使用DataPropertyName,然后使id列不可见。

Nick.emp\u id是col\u empname的dataproperty名称。那么您是否为col\u empname创建了一个列并使其不可见?Nick.感谢您的快速回复。将employeecolumn设置为DataGridViewComboBoxColumn=CTypegrdWorkStatus.ColumnsColumnScolumn\u empname,DataGridViewComboBoxColumn employeecolumn.DisplayMember=emp_name employeecolumn.ValueMember=emp_Id employeecolumn.DataPropertyName=emp_Id employeecolumn.DataSource=EmployeeSource@Shyams你最后的评论是否证实尼克帮助解决了你的问题?然后请投票给他,并将他的答案标记为答案,或者在你解释完整答案的地方张贴一个新答案。如果您的评论是新信息,而问题仍然存在,请在问题中添加代码,并添加有关问题的新信息。