最后40分全给出来了,水晶报表连接传参的问题
asp.net页面显示指定的参数已超出有效值的范围,@name有错.
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using CrystalDecisions.Shared; //负责解释TableLogOnInfo类
using CrystalDecisions.CrystalReports.Engine; //负责解释ReportDocument类
public partial class _Default : System.Web.UI.Page
{
ParameterFields crParameterFields;
ParameterField crParameterField;
ParameterValues crParameterValues;
ParameterDiscreteValue crParameterDiscreteValue;
private void Page_Load(object sender, System.EventArgs e)
{
TableLogOnInfo logOnInfo = new TableLogOnInfo();
//这里必须事先申明一个ReportDocument对象 Report,同时加载数据报表
ReportDocument oRpt = new ReportDocument();
//获取.rpt文件真实路径
string path;
path = Server.MapPath("GZ_CReport.rpt");
oRpt.Load(path);
//从web.config中获取logOnInfo参数信息
string a, b, c, d;
//获取ServerName
a = System.Configuration.ConfigurationSettings.AppSettings["servername"];
//获取DatabaseName
b = System.Configuration.ConfigurationSettings.AppSettings["database"];
//获取UserId
c = System.Configuration.ConfigurationSettings.AppSettings["userid"];
//获取password
d = System.Configuration.ConfigurationSettings.AppSettings["pass"];
//设置logOnInfo参数
logOnInfo.ConnectionInfo.ServerName = a;
logOnInfo.ConnectionInfo.DatabaseName = b;
logOnInfo.ConnectionInfo.UserID = c;
logOnInfo.ConnectionInfo.Password = d;
crParameterFields = CrystalReportViewer2.ParameterFieldInfo;
crParameterField = crParameterFields["@name"];//字段名
crParameterValues = crParameterField.CurrentValues;
crParameterDiscreteValue = new ParameterDiscreteValue();
crParameterDiscreteValue.Value = Request.QueryString["name"]; ;//字段值
crParameterValues.Add(crParameterDiscreteValue);
CrystalReportViewer2.ParameterFieldInfo = crParameterFields;
//建立.rpt文件与CryStalReportviewer文件之间的连接
CrystalReportViewer2.ReportSource = oRpt;
}
}
但如果将以下
//建立.rpt文件与CryStalReportviewer文件之间的连接
CrystalReportViewer2.ReportSource = oRpt;
放在
logOnInfo.ConnectionInfo.DatabaseName = b;
logOnInfo.ConnectionInfo.UserID = c;
logOnInfo.ConnectionInfo.Password = d;
后面提示输入数据库登录,登录成功能够正常显示,我调了一晚上,不知哪出错了,大家帮帮忙,不够分我加!