谁能告诉我如何通过查询字符串绑定DevExpress XtraReport?
我想在报告中只显示ID值为8,我使用存储过程来获取数据。
SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["con"].ConnectionString);
SqlCommand cmd = new SqlCommand("GetLabReport", connection);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@PID", SqlDbType.Int).Value = Request.QueryString["ID"].ToString();
connection.Open();
SqlDataAdapter DA = new SqlDataAdapter(cmd);
DataTable DT = new DataTable();
XtraReport1 Rept = new XtraReport1();
string path = (Server.MapPath("App_Code/XtraReport1.cs"));
DA.Fill(DT);
connection.Close();
if(DT.Rows.Count>0)
{
}
以上工作适用于Crystal Reports,但不适用于DevExpress XtraReports。
我建议您创建报告参数,然后使用查询字符串设置参数值。
请参阅以下主题的评论: Report Designer using SQL Server Stored Procedure as data source, generates .Net exception.
添加报表的参数,然后将其映射到查询参数。然后将值从Request.QueryString传递给Parameter.Value属性
例:
protected void Page_Load(object sender, EventArgs e) {
XtraReport3 report = new XtraReport3();
report.Parameters[0].Value = Request["MyParam"];
ASPxDocumentViewer1.Report = report;
}
参考文献: Passing querystring values to a report How to use parameter from querystring to show report Parameters support thru URL QueryString in XtraReports? How to pass QueryString parameter into Report (master-detail) c#