C# 将参数传递到Telerik报告

C# 将参数传递到Telerik报告,c#,asp.net,telerik,telerik-reporting,C#,Asp.net,Telerik,Telerik Reporting,我有一个telerik报告项目添加到我的网站,我试图传递一个参数,但我收到以下错误 错误: 对象引用未设置为对象的实例 Asp.net代码 protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { MembershipCard rpt = new MembershipCard(); // Error occuring here rpt.

我有一个telerik报告项目添加到我的网站,我试图传递一个参数,但我收到以下错误

错误:

对象引用未设置为对象的实例

Asp.net代码

protected void Page_Load(object sender, EventArgs e)
{
   if (!Page.IsPostBack)
    {
        MembershipCard rpt = new MembershipCard();
        // Error occuring here
        rpt.ReportParameters["@MemberID"].Value = "5"; // Request["MemberID"];
        ReportViewer1.Report = rpt;
    }        
}
电传报告课

    public MembershipCard()
    {
        /// <summary>
        /// Required for telerik Reporting designer support
        /// </summary>
        InitializeComponent();
        this.DataSource = null;
    }

    private void MembershipCard_NeedDataSource(object sender, EventArgs e)
    {
        string proc = "rpt_MembershipCard" + this.ReportParameters["@MemberID"].Value.ToString();
        SqlDataAdapter adapter = new SqlDataAdapter(proc, "Data Source=(local); Initial Catalog= northwind; intergrated security = True");
        DataSet dataSet = new DataSet();
        adapter.Fill(dataSet);
        (sender as Telerik.Reporting.Processing.Report).DataSource = dataSet;
    }
公共会员卡()
{
/// 
///telerik Reporting designer支持所需
/// 
初始化组件();
this.DataSource=null;
}
private void MembershipCard_NeedDataSource(对象发送方,事件参数e)
{
string proc=“rpt_MembershipCard”+this.ReportParameters[“@MemberID”].Value.ToString();
SqlDataAdapter=新SqlDataAdapter(proc,“数据源=(本地);初始目录=northwind;集成安全性=True”);
数据集=新数据集();
adapter.Fill(数据集);
(发送方为Telerik.Reporting.Processing.Report);
}

有人能告诉我正确的方向吗?我在互联网上找不到任何相关信息。

问题是您没有提供参数。尝试更改:

rpt.ReportParameters.Add("MemberID", "5");
以及:

此外,如果在解决方案中添加了
DataSet.xsd
文件,请使用其生成的
TableAdapter

存储过程示例:

using System.Data;
using YourNamespace.StoredProcedureNameTableAdapter;

//Keep in mind StoredProcedureName is taken from SP name in your database
//when you add DataSet.xsd to your solution by default if you don't change anything

private void ClassName_NeedDataSource(object sender, EventArgs e)
{
   int someID = int.Parse(this.ReportParameters["ParameterID"].Value.ToString());
   StoredProcedureNameTableAdapter adapter = new StoredProcedureNameTableAdapter();
   DataSetFile.StoredProcedureNameDataTable data = adapter.GetData(someID); //DataSetFile is DataSetFile.xsd and GetData is method name you defined on DataSetFile.xsd creation
   ((Telerik.Reporting.Processing.Report)sender).DataSource = data.AsDataView();
}

问题是您并没有提供参数。尝试更改:

rpt.ReportParameters.Add("MemberID", "5");
以及:

此外,如果在解决方案中添加了
DataSet.xsd
文件,请使用其生成的
TableAdapter

存储过程示例:

using System.Data;
using YourNamespace.StoredProcedureNameTableAdapter;

//Keep in mind StoredProcedureName is taken from SP name in your database
//when you add DataSet.xsd to your solution by default if you don't change anything

private void ClassName_NeedDataSource(object sender, EventArgs e)
{
   int someID = int.Parse(this.ReportParameters["ParameterID"].Value.ToString());
   StoredProcedureNameTableAdapter adapter = new StoredProcedureNameTableAdapter();
   DataSetFile.StoredProcedureNameDataTable data = adapter.GetData(someID); //DataSetFile is DataSetFile.xsd and GetData is method name you defined on DataSetFile.xsd creation
   ((Telerik.Reporting.Processing.Report)sender).DataSource = data.AsDataView();
}

当我尝试您的建议时,我发现错误“rpt_PrintMembershipCard”不包含“ReportParameters”的定义,并且找不到接受“rpt_PrintMembershipCard”类型的第一个参数的扩展方法“ReportParameters”(您是否缺少using指令或程序集引用?)@Wellie是您创建的报告的rpt_PrintMembershipCard名称吗?您应该有rpt_PrintMembershipCard.cs文件。您的类定义应该是:
public partial class rpt_PrintMembershipCard:Telerik.Reporting.Report
文件是MembershipCard.cs,报表查看器所在的网页是rpt_PrintMembershipCard第一个代码块是您在ASP.NET页面代码中编写的代码。请记住,
rpt
与您在代码中使用的引用相同。其他2个块写在报告代码部分中。你能复制给你异常的那一行吗?异常正在这里抛出
rpt.ReportParameters[“@MemberID”].Value=“5”'但事实证明,我在声明参数时缺少@当我尝试您的建议时,我得到错误“rpt_PrintMembershipCard”不包含“ReportParameters”的定义,并且找不到接受“rpt_PrintMembershipCard”类型的第一个参数的扩展方法“ReportParameters”(是否缺少using指令或程序集引用?)@Wellie是您创建的报表的rpt_PrintMembershipCard名称?您应该有rpt_PrintMembershipCard.cs文件。您的类定义应该是:
公共部分类rpt_PrintMembershipCard:Telerik.report.report
该.cs文件是MembershipCard.cs,报表查看器所在的网页是rpt_PrintMembershipCard First代码块是您在ASP.NET页面代码中编写的代码。请记住,
rpt
与您在代码中使用的引用相同。其他两个代码块写入报告代码部分。您能否复制产生异常的行?异常将在此处引发。
rpt.ReportParameters[“@MemberID”]。Value=“5”“;”
但事实证明,我在声明参数时遗漏了@