2015-10-06 147 views
0

我在VB.NET中编程,并有一个datagridview从数据库中自动填充。datagridview列名未找到

当我使用代码如dgvPurchases.Rows(dgvPurchases.SelectedRows(i).Index).Cells("Head").Value时,我收到一个错误列名称“Head”未找到。

这是我的数据表中的列名,当我做Edit Columns时,它显示“Head”为DataPropertyName。网络上的一个答案是重命名列,但我可以找出如何重命名标题,但不是列。

当我去Purchases.Designer.vb,我发现Me.HeadDataGridViewTextBoxColumn = New System.Windows.Forms.DataGridViewTextBoxColumn()

在我最初设计表单后,在列上添加了数据库,它们显示Me.CkOff = New System.Windows.Forms.DataGridViewTextBoxColumn()dgvPurchases.Rows(dgvPurchases.SelectedRows(i).Index).Cells("CkOff").Value返回一个值。

我知道我可以使用列号;但是,如果我更改了数据表,纠正代码就成了问题。使用数据的列名是受欢迎得多

回答

0

我不明白是什么原因造成这个错误,或者为什么我的修补程序的工作,但我转到FORMNAME.Designer.vb和改变

'HeadDataGridViewTextBoxColumn ' Me.Head.DataPropertyName = "Head" Me.Head.HeaderText = "Head" Me.Head.Name = "HeadDataGridViewTextBoxColumn" Me.Head.Width = 40

固定的问题

'HeadDataGridViewTextBoxColumn ' Me.Head.DataPropertyName = "Head" Me.Head.HeaderText = "Head" Me.Head.Name = "Head" Me.Head.Width = 40

0

我遇到了类似的问题,可以通过类似的方式解决。 经过多一点挖掘之后,我发现问题是由于我将DataGridView的DataSource设置为Nothing来试图清除它而导致的。

当我在底层数据表上做了一个datatable.clear而不是数据源时,问题就消失了。