水晶报表9,10怎么这么慢呢,起码等上20秒,客户意见非常的大,快晕了.

justgo 2005-08-19 04:47:24
有这方面经验的大侠看看我下面这段代码是否有问题?或者说能否优化一下的?

private void Cgxjd_rt_Load(object sender, System.EventArgs e)
{

GetDataSet(CrystalReportViewer1);

}

public void SetReportParamFieldValue(CrystalReportViewer crv,string strField,object objValue)
{
ParameterFields paramFields = new ParameterFields ();
ParameterField paramField = new ParameterField ();
ParameterDiscreteValue pdValue = new ParameterDiscreteValue ();

paramField.ParameterFieldName = strField;
pdValue.Value = objValue;
paramField.CurrentValues.Add (pdValue);
paramFields.Add (paramField);

crv.ParameterFieldInfo = paramFields;
}

private void GetDataSet(CrystalReportViewer crv)
{
SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]);

//取回数据放入数据集
DataSet dtst=new DataSet();

SqlDataAdapter Cgdd = new SqlDataAdapter("SELECT * FROM Cgdd", conn);
Cgdd.Fill(dtst, "Cgdd");

SqlDataAdapter Cgddmx = new SqlDataAdapter("SELECT * FROM Cgddmx", conn);
Cgddmx.Fill(dtst, "Cgddmx");

SqlDataAdapter Gys = new SqlDataAdapter("SELECT * FROM Gys", conn);
Gys.Fill(dtst, "Gys");

//创建报表对象
ReportDocument doc=new ReportDocument();

//加载报表
doc.Load(HBS.Business.UsualMethod.cr_Path+"\\Cgbjd.rpt");

//为报表对象设置数据源
doc.SetDataSource(dtst);

//参数传入
SetReportParamFieldValue(CrystalReportViewer1,"ddId",f.ddId);

//以报表查看器显示报表
crv.ReportSource=doc;
}
...全文
214 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
TonyZeus 2005-08-20
  • 打赏
  • 举报
回复
应该将需要的数据放入数据集,不要多放垃圾数据,这样可以快点
justgo 2005-08-20
  • 打赏
  • 举报
回复
谢谢各位,我再试试
xwdd129 2005-08-20
  • 打赏
  • 举报
回复
如果程序能正常运行,那就只可能是数据量的问题了,不要绑定过多的表
justgo 2005-08-19
  • 打赏
  • 举报
回复
自已突然想到一点:是不是我的数据集太大了呢?是不是应该先按条件搜索出结果后再传到DataSet里?

4,818

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧