Почему мое сетевое представление не заполняется после настройки источника данных? - PullRequest
0 голосов
/ 10 апреля 2019

Я работаю над приложением 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

Вот код, назначающий данные для таблицы данных.Я пробовал как с использованием источника привязки, так и без него.

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

Все, что у меня получается, это пустая сетка:

enter image description here

Обновление № 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
...