1

このチュートリアルに従って、C# を使用して ASP.Net で RDLC レポートを作成しました。

私の場合、上記の例とまったく同じようにレポート ウィザードでレポートを生成したいと考えています。次に、さまざまな拡張子でレポートを生成します。

ReportViewer1.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ReportViewer1.aspx.cs" Inherits="Project_name.Report.ReportViewer1" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body style="height: 170px">
    <form id="form1" runat="server">
    <div>
    <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
    <rsweb:reportviewer id="ReportViewer1" runat="server" width="600"></rsweb:reportviewer>
    </div>
    </form>
</body>
</html>

ReportViewer1.aspx.cs

using System;
using System.Configuration;
using System.Data.SqlClient;
using Microsoft.Reporting.WebForms;
using System.Data;
using Project_name.Report;


namespace Project_name.Report
{
    public partial class ReportViewer1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                ReportViewer1.ProcessingMode = ProcessingMode.Local;
                ReportViewer1.LocalReport.ReportPath = Server.MapPath("~/Report.rdlc");
                DataSet dsCustomers = GetData("select top 20 * from AB_Products");
                ReportDataSource datasource = new ReportDataSource("Project_nameDataSet", dsCustomers.Tables[0]);
                ReportViewer1.LocalReport.DataSources.Clear();
                ReportViewer1.LocalReport.DataSources.Add(datasource);
            }
        }

        private DataSet GetData(string query)
        {
            string conString = ConfigurationManager.ConnectionStrings["Project_nameConnectionString"].ConnectionString;
            SqlCommand cmd = new SqlCommand(query);
            using (SqlConnection con = new SqlConnection(conString))
            {
                using (SqlDataAdapter sda = new SqlDataAdapter())
                {
                    cmd.Connection = con;

                    sda.SelectCommand = cmd;
                    using (DataSet dsCustomers = new DataSet())
                    {
                        sda.Fill(dsCustomers, "DataTable1");
                        return dsCustomers;
                    }
                }

            }
        }
    }
}

私の場合、ReportViewer1.aspx.csファイルの次の行に赤い波線が表示されます

   1. ReportViewer1.ProcessingMode = ProcessingMode.Local;
   2. ReportViewer1.LocalReport.ReportPath = Server.MapPath("~/Report.rdlc");
   3. ReportViewer1.LocalReport.DataSources.Clear();
   4. ReportViewer1.LocalReport.DataSources.Add(datasource);

上記の行にカーソルを合わせると、次のエラーがそれぞれ表示されます

1.'ReportViewer1' does not contain definition for 'ProcessingMode'
2.'ReportViewer1' does not contain definition for 'LocalReport'
3.'ReportViewer1' does not contain definition for 'LocalReport'
4.'ReportViewer1' does not contain definition for 'LocalReport'

これは私のフォルダ階層です

ここに画像の説明を入力

このことを成し遂げるにはどうすればいいですか。この問題は接続文字列が間違っているために発生していますか? または間違ったデータリソースを参照しているためですか?

4

1 に答える 1