日期:2014-05-20  浏览次数:20948 次

水晶报表加载缓慢
内容:
根据条件查询数据,在DataGridView里面显示对应信息,然后点击每行信息,在下面CrystalReportViewer显示对应报表
现在已经实现报表的对应加载!
数据源是dateset数据集,数据来源是SQL Server中同一数据库下多个表
但问题就在于,第一次加载相当缓慢,将近花费17、18秒左右
现在想请问一下,是我SQL 语句的问题?!还是存在其他问题。
若有问题怎么修改﹏﹏
以及怎么实现预加载?!
我比较小白﹏﹏希望能解说详细点﹏﹏%>_<%
code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;

namespace yyynwl
{
    public partial class f_tlddy : Form
    {
        public f_tlddy()
        {
            InitializeComponent();
        }

        private void BTNcx_Click(object sender, EventArgs e)
        {
            
            string tmpsql = "select e.id ,e.yfid ,b.mc ,e.ksid ,e.zzrdm ,e.zzrxm ,e.zzsj ,e.dyrdm ,e.dyrxm ,e.dysj ,e.dycs ,e.zhdysj from ejyf_tld e with(nolock),bmml b with(nolock) where e.yfid=b.id";//对应DataGridView中字段

//查询
            if (CBksmc.Text != "")
            {
                tmpsql += " and e.ksid=" + CBksmc.Text.Trim();
            }

            if (Lyfmc.Text != "")
            {
                tmpsql += " and b.mc='" + Lyfmc.Text.ToString().Trim() +"'";
            }

            if (wdy.Checked == true)
            {
                tmpsql += " and e.dycs is  null or e.dycs = 0";
            }
            else 
            {
                tmpsql += " and e.dycs>0";
                tmpsql += " and e.dysj between '"+dtp1.Text.ToString().Trim ()+"' and '"+dtp2.Text.ToString().Trim ()+"'";

                if (tdyr.Text  != "")
                {