net 2005自带水晶报表查询速度的问题

snfeng 2009-06-08 03:10:20
我使用水晶报表做了个成绩打印的系统 ,我按系进行打印,比如说有三个系 计算机系 数学系 中文系 在我机子上查询都比较快 但是放到服务器上后 ,只有计算机系比较快 ,其他两个系查询向当地慢,不知道什么原因,是不是缓存的问题,是不是计算机系的查询先放到缓存中了,请帮忙 谢谢!
...全文
95 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿泰 2009-06-10
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 snfeng 的回复:]
Connection.Open();
adapter.Fill(ds, "DataTable1");

其他系在这两个位置比较慢
[/Quote]

这两个环节跟水晶报表还没发生关系呢
建议把Connection的打开放在一个公用的位置,不用每次都打开

adapter.Fill(ds, "DataTable1"); 这个的过程,貌似不能优化了。
tingbing 2009-06-10
  • 打赏
  • 举报
回复
怎么加时间点,是自己写程序,还是vs2005自带的功能,我怎么没有听说过.呵呵
snfeng 2009-06-10
  • 打赏
  • 举报
回复
Connection.Open();
adapter.Fill(ds, "DataTable1");

其他系在这两个位置比较慢

阿泰 2009-06-10
  • 打赏
  • 举报
回复
回8楼、10楼

Win程序下
System.Diagnostics.Debug.Write("时间点1:" + System.DateTime.Now);
这样在调试模式下的“输出”标签页上会显示出:
时间点1:2009-6-10 14:41:16

这个样子的时间点

通过这样设置多个时间点(时间点1,时间点2)的监控,判断出各过程耗费的时间。

Web程序下:
用Response.Write("时间点1:" + System.DateTime.Now);


xiaojin0710 2009-06-10
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 tingbing 的回复:]
怎么加时间点,是自己写程序,还是vs2005自带的功能,我怎么没有听说过.呵呵
[/Quote]

同借台子问下啊,谢谢了
阿泰 2009-06-09
  • 打赏
  • 举报
回复
代码看上去没问题。

分别在

protected void Button1_Click(object sender, EventArgs e)
{
string Sqlstring = "Select Stu_Id,Stu_Name,Class_Id,Class_Name,depart_Id,Course_Name,mc,Grade From mc";
//这个位置继续下时间点
Connection.Open();
//这个位置继续下时间点

if (banjiDdl.SelectedValue == "全部班级") -----假如选择全部班级就是按系查询
{
Sqlstring = Sqlstring + " where Depart_Id='" + xibieDdl.SelectedValue.Trim().ToString() + "' order by Stu_Id";
}
else ---------否则就是按班查询
{
Sqlstring = Sqlstring + " where Class_Id='" + banjiDdl.SelectedValue.Trim().ToString() + "' order by Stu_Id";
}

// string Sqlstring = "Select * From Grade_View Where Class_Name ='" + banjiDdl.SelectedValue.Trim().ToString() + "' order by Stu_Id";
SqlDataAdapter adapter = new SqlDataAdapter(Sqlstring, Connection);
//这个位置继续下时间点
DataSet1 ds = new DataSet1();------事先创建好的数据集(是不是问题出在这)
adapter.Fill(ds, "DataTable1");
//这个位置继续下时间点
if (ds.Tables[0].Rows.Count == 0)
{
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "", " <script lanuage=javascript>alert('此查询数据为空,请选其他查询方式!'); </script>");

}
//这个位置继续下时间点
bjcjReport.Load(Server.MapPath("bjcj.rpt")); -----水晶报表文件名为bjcj.rpt
//这个位置继续下时间点
bjcjReport.SetDataSource(ds);
//这个位置继续下时间点
CrystalReportViewer1.ReportSource = bjcjReport;
//这个位置继续下时间点
Connection.Close();
}

在上述位置处,记录时间点,看下哪个时候耗时最长
选用不同的系别时,哪个节点耗时最长
snfeng 2009-06-09
  • 打赏
  • 举报
回复
protected void Button1_Click(object sender, EventArgs e)
{
string Sqlstring = "Select Stu_Id,Stu_Name,Class_Id,Class_Name,depart_Id,Course_Name,mc,Grade From mc";
Connection.Open();


if (banjiDdl.SelectedValue == "全部班级") -----假如选择全部班级就是按系查询
{
Sqlstring = Sqlstring + " where Depart_Id='" + xibieDdl.SelectedValue.Trim().ToString() + "' order by Stu_Id";
}
else ---------否则就是按班查询
{
Sqlstring = Sqlstring + " where Class_Id='" + banjiDdl.SelectedValue.Trim().ToString() + "' order by Stu_Id";
}

// string Sqlstring = "Select * From Grade_View Where Class_Name ='" + banjiDdl.SelectedValue.Trim().ToString() + "' order by Stu_Id";
SqlDataAdapter adapter = new SqlDataAdapter(Sqlstring, Connection);
DataSet1 ds = new DataSet1();------事先创建好的数据集(是不是问题出在这)
adapter.Fill(ds, "DataTable1");
if (ds.Tables[0].Rows.Count == 0)
{
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "", "<script lanuage=javascript>alert('此查询数据为空,请选其他查询方式!');</script>");

}
bjcjReport.Load(Server.MapPath("bjcj.rpt")); -----水晶报表文件名为bjcj.rpt
bjcjReport.SetDataSource(ds);
CrystalReportViewer1.ReportSource = bjcjReport;
Connection.Close();
}
谢谢!
阿泰 2009-06-09
  • 打赏
  • 举报
回复
1:贴代码出来看看吧
2:先查其他系,再查计算机系,看看其他的系是不是也快了,确定下是不是第一次查快(而不只是计算机系)
snfeng 2009-06-08
  • 打赏
  • 举报
回复
阿泰 请帮忙再看看 ,谢谢了 经常看你 的帖子
snfeng 2009-06-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 babyt 的回复:]
WEB程序还是 win程序
水晶报表确实有缓存,但是还不至于影响那么大,是不是你的不同的系返回的数据量差别很大?

还有你的快和慢,你先查的哪个后查的哪个?
[/Quote]

是web程序,我先查的计算机系 后查的其他系,返回的数据量差别不大
阿泰 2009-06-08
  • 打赏
  • 举报
回复
WEB程序还是 win程序
水晶报表确实有缓存,但是还不至于影响那么大,是不是你的不同的系返回的数据量差别很大?

还有你的快和慢,你先查的哪个后查的哪个?

4,818

社区成员

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

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