1

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

reportviewerフォームのロードイベントの私の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 Management Studio でチェックされています...

私が試した別の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()

ここでエラーが発生しています:

ここに画像の説明を入力

私はそれが何を言っているのか分かりません...

ここで私を助けてください。

4

1 に答える 1

2

現在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)
于 2016-10-17T08:51:25.620 に答える