Данные не загружаются в средство просмотра отчетов VB.NET

Я создал хранимую процедуру на сервере ms-sql 2014 и создал отчет rdlc. Теперь программно привязываю отчет в Reportviewer, но в отчете отображаются только столбцы, а не данные...

Нижеприведенный код является моей хранимой процедурой:

USE [Bonny]
GO
/****** Object:  StoredProcedure [dbo].[AccMast_AllDetail]    Script Date: 17/10/2016 12:10:42 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER Proc [dbo].[AccMast_AllDetail]
as
Select Account_Code,Party_Name,Address_1,Address_2,City from FAMPAR order by Account_Code
GO

Мой код VB.NET в событии загрузки формы средства просмотра отчетов...

        ReportViewer.Reset()
        Dim data As New AccMastDataSet
        Dim ReportDataSource1 As ReportDataSource = New ReportDataSource
        ReportDataSource1.Name = "AccMastDataSet"
        ReportDataSource1.Value = rds
        ReportViewer.LocalReport.DataSources.Clear()
        ReportViewer.LocalReport.DataSources.Add(ReportDataSource1)
        ReportViewer.LocalReport.ReportEmbeddedResource = "Report1.rdlc"
        ReportViewer.LocalReport.ReportPath = "D:\netbonny\netbonnyproject\netbonnyproject\Reports\Report1.rdlc"
        ReportViewer.RefreshReport()

В этом я получаю заголовки столбцов, но не данные, данные есть и проверяются в студии управления sql...

Другой код VB.NET, который я пробовал:

Dim data As New AccMastDataSet
Dim abc = data.Tables("AccMast_AllDetail")
Dim rds = New Microsoft.Reporting.WinForms.ReportDataSource("AccMastDataSet", data)
ReportViewer.LocalReport.DataSources.Clear()
ReportViewer.LocalReport.DataSources.Add(rds)
ReportViewer.LocalReport.ReportEmbeddedResource = "netbonnyproject.Report1.rdlc"
ReportViewer.RefreshReport()

Здесь я получаю ошибку:

введите описание изображения здесь

Я понятия не имею, что там написано...

Помоги мне здесь.


person bonny    schedule 17.10.2016    source источник


Ответы (1)


В настоящее время вы передали DataTable нового экземпляра DataSet для отчета об источнике данных. Поэтому, очевидно, он должен быть пустым, и вы увидите заголовки столбцов отчета без каких-либо данных.

Вы должны загрузить данные в DataTable, а затем передать их в отчет.

Например, если вы удалили TableAdapter в своей форме, вы можете использовать такой код:

Me.Table1TableAdapter.Fill(Me.DataSet1.Table1)
Dim rds = New Microsoft.Reporting.WinForms.ReportDataSource("DataSet1", Me.DataSet1.Table1)

Также

Dim cn = "Connection String"
Dim cmd = "Stored Procedre Name"
Dim table = New DataTable()
Using adapter As New SqlDataAdapter(cmd, cn)
    adapter.SelectCommand.CommandType = CommandType.StoredProcedure
    adapter.Fill(table)
End Using
Dim rds = New Microsoft.Reporting.WinForms.ReportDataSource("DataSet1", table)
person Reza Aghaei    schedule 17.10.2016
comment
МОЙ БОГ! Я так рад видеть свои данные в ReportViewer Atlast... #cry......... Большое спасибо. И да, я не использовал Dim rds = New Microsoft.Reporting.WinForms.ReportDataSource("DataSet1", table), я сразу поместил таблицу в ReportDataSource1.Value = table, и она работает... Большое спасибо, @RezaAghaei.. - person bonny; 18.10.2016
comment
на самом деле я смешал два кода, поэтому было два ReportDataSource... Как бы то ни было, сейчас я чувствую облегчение, еще раз спасибо @RezaAghaei - person bonny; 18.10.2016