希望高手发表意见。。以前没有做过这个水晶报表。。查了写资料,大多雷同。。代码也用不了。。

解决方案 »

  1.   

    myReport ReportDoc = new myReport();
    protected void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    string strProvider = "Server=10.6.185.35;DataBase=DEMO;UID=aa;PWD=aa";
    SqlConnection MyConn = new SqlConnection(strProvider);
    MyConn.Open();
                string strSel = "Select * from InvertIndex";
    SqlDataAdapter MyAdapter = new SqlDataAdapter(strSel,MyConn);
    //DataSet1 ds = new DataSet1();
                DataSet ds = new DataSet();
    MyAdapter.Fill(ds,"SaleOfCuntry");
    ReportDoc.SetDataSource(ds);
    Crv.ReportSource = ReportDoc;

    }
    报错:System.Exception: Could not load crpe32.dll
      

  2.   

    数据库连接类,需要在webconfig中设置好AppSettings["servername"],AppSettings["userid"],AppSettings["pass"]这三个数据库OLEDB的连接字符串. 
    public class LoginCrystalReport
        {
            public void Login(CrystalDecisions.CrystalReports.Engine.ReportDocument report)
            {
                string servername, username, password;
                // t Database Logon to main report 
                servername = System.Configuration.ConfigurationSettings.AppSettings["servername"];
                username = System.Configuration.ConfigurationSettings.AppSettings["userid"];
                password = System.Configuration.ConfigurationSettings.AppSettings["pass"];
                foreach (CrystalDecisions.Shared.IConnectionInfo connection in report.DataSourceConnections)
                {
                    if (connection.ServerName == servername)
                    {
                        connection.SetLogon(username, password);
                    }
                }
                // t Database Logon to subreport 
                foreach (CrystalDecisions.CrystalReports.Engine.ReportDocument subreport in report.Subreports)
                {
                    foreach (CrystalDecisions.Shared.IConnectionInfo connection in subreport.DataSourceConnections)
                    {
                        if (connection.ServerName == servername)
                        {
                            connection.SetLogon(username, password);
                        }
                    }
                }
            }
        }
    然后新建一个crystalreport1.rpt.使用数据库专家连接OLEDB上的你建立的数据库. 最后在default.aspx中拖入crytalreportview控件再在pageload事件中写入 DataSet ds = new DataSet();
                LoginCrystalReport Logins = new LoginCrystalReport();
                ads.Fill(ds, "TEST");//最狗屎的地方,这个Tablename一定要与你的数据库专家建的表名一样.
                CrystalReport1 oRpt = new CrystalReport1();
                oRpt.SetDataSource(ds);
                Logins.Login(oRpt);
                CrystalReportViewer1.ReportSource = oRpt;
                CrystalReportViewer1.DataBind();
    就可以读相应的sql语句选出来的dataset了.