Я работаю над приложением vb.net для форм Windows.У меня есть представление данных, которое я пытаюсь заполнить данными, и не могу получить его для отображения данных.Я попытался присвоить данные напрямую в datagridview и использовать источник привязки.Я проверил имена столбцов и попытался обновить сетку после установки источника данных.Если я вернусь к коду, я увижу, что источник данных содержит данные, но данные не будут отображаться в сетке.Что я делаю не так?
Вот создание таблицы базы данных:
Dim dsReturns As New DataSet("Returns Dataset")
Dim dtReturns = dsReturns.Tables.Add("Returns Datatable")
dtReturns.Columns.Add("Quantity")
dtReturns.Columns.Add("ItemName")
Dim drReturns As DataRow = dtReturns.NewRow
drReturns("Quantity") = qtyh(key).ToString
drReturns("ItemName") = ItemFunctions.GetItemName(item_id)
dsReturns.Tables("Returns Datatable").Rows.Add(drReturns)
Это создает таблицу данных, которая выглядит следующим образом:
![enter image description here](https://i.stack.imgur.com/xiXAI.jpg)
Вот код, назначающий данные для таблицы данных.Я пробовал как с использованием источника привязки, так и без него.
dgvReturns = new DataGridView()
Dim bsReturns As New BindingSource()
bsReturns.DataSource = dsReturns.Tables("Returns Datatable")
dgvReturns.DataSource = bsReturns
Вот код из Designer, который создает представление данных.Я не писал код, все это автоматически сгенерировано.Я создал новое представление данных в режиме «Дизайн», а затем добавил два столбца.
Friend WithEvents dgvReturns As DataGridView
Friend WithEvents Quantity As DataGridViewTextBoxColumn
Friend WithEvents ItemName As DataGridViewTextBoxColumn
Me.dgvReturns = New System.Windows.Forms.DataGridView()
Me.Quantity = New System.Windows.Forms.DataGridViewTextBoxColumn()
Me.ItemName = New System.Windows.Forms.DataGridViewTextBoxColumn()
CType(Me.dgvReturns,System.ComponentModel.ISupportInitialize).BeginInit
Me.dgvReturns.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize
Me.dgvReturns.Columns.AddRange(New System.Windows.Forms.DataGridViewColumn() {Me.Quantity, Me.ItemName})
Me.Quantity.DataPropertyName = "Quantity"
Me.Quantity.HeaderText = "Quantity Returned"
Me.Quantity.Name = "Quantity"
Me.ItemName.HeaderText = "Item Name"
Me.ItemName.Name = "ItemName"
Me.dgvReturns.Location = New System.Drawing.Point(13, 13)
Me.dgvReturns.Name = "dgvReturns"
Me.dgvReturns.Size = New System.Drawing.Size(465, 150)
Me.dgvReturns.TabIndex = 1
Me.Controls.Add(Me.dgvReturns)
CType(Me.dgvReturns,System.ComponentModel.ISupportInitialize).EndInit
Вот снимок экрана таблицы в конструкторе:
![enter image description here](https://i.stack.imgur.com/Gz7he.jpg)
Все, что у меня получается, это пустая сетка:
![enter image description here](https://i.stack.imgur.com/V7y5X.jpg)
Обновление № 1 - отображение всего кода для формы
Вот полный код формы, показывающей конструктор.
Public Class frmReturnsDialog
Public Sub New(dsReturns As DataSet)
InitializeComponent()
dgvReturns = new DataGridView()
Dim bsReturns As New BindingSource()
bsReturns.DataSource = dsReturns.Tables("Returns Datatable")
dgvReturns.DataSource = bsReturns
End Sub
End Class