2015-10-06 5 views
0

Я программирую в VB.NET и имею datagridview, который автоматически заполняется из базы данных.имя столбца datagridview не найден

Когда я использую код, такой как dgvPurchases.Rows(dgvPurchases.SelectedRows(i).Index).Cells("Head").Value Получать столбец ошибки «Head» не найден.

Это имя столбца в моем datatable, и когда я делаю Edit Columns, он показывает «Голова» как 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

У меня возникла аналогичная проблема, которая может быть решена аналогичным образом. После небольшого перекопа, я обнаружил, что проблема была вызвана, когда я установил DataSource DataGridView в Nothing, пытаясь его очистить.

Когда я сделал datatable.clear в таблице данных, которую я использовал вместо источника данных, проблема исчезла.

Смежные вопросы