Сначала давайте исправим ваш код VB. Полностью удалите For / Next l oop, а затем раскомментируйте строку над ним. Теперь ваш код должен выглядеть так:
Try
Cursor = Cursors.WaitCursor
Dim id As Integer = 1
Dim Report1 As New PrintStockReport
Dim dt As DataTable = New DBConnect().selectdata( _
"SELECT StockTable.StockRef, StockTable.StockCat FROM StockTable;")
Report1.SetDataSource(dt)
CrystalReportViewer1.ReportSource = Report1
Cursor = Cursors.Default
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
Это правильно привяжет вашу таблицу данных к объекту Report1 в качестве источника данных. Теперь вам нужно исправить свой отчет в дизайнере, удалив поля параметров из отчета. Поля параметров используются только тогда, когда вам нужно, чтобы пользователь передавал данные в отчет во время выполнения. Например, если бы я составлял отчет, который показывает пользователю данные за один финансовый период, и я хочу, чтобы он был достаточно гибким для работы с любым периодом, я бы использовал поле параметра, чтобы попросить пользователя указать период в качестве входных данных. когда отчет выполнен. Если вы посмотрите на Field Explorer в своем дизайнере отчетов, вы должны увидеть «Поля базы данных». В развернутом виде это должно показать вам таблицу или таблицы, которые определены как база данных отчета. После развертывания таблицы вы увидите список полей, доступных для отчета. Перетащите поля, которые вы хотите отображать в своем отчете, в раздел, где они должны появиться.
Как только это будет сделано, ваш отчет должен работать. Это предполагает, что ваша база данных определена в эксперте по базам данных в дизайнере отчетов.