我在VB.NET中编程并且有一个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 :(得分: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
答案 1 :(得分:0)
我遇到了类似的问题,可以用类似的方式解决。 经过一番挖掘,我发现当我将DataGridView的DataSource设置为Nothing以试图清除它时,问题就出现了。
当我在基础数据表上执行datatable.clear而不是我用作数据源时,问题就消失了。