C# 将参数传递到Telerik报告
我有一个telerik报告项目添加到我的网站,我试图传递一个参数,但我收到以下错误 错误: 对象引用未设置为对象的实例 Asp.net代码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.
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”“;”
但事实证明,我在声明参数时遗漏了@