WinForm:
this.crystalReportViewer1.ReportSource = this.customerByLivingPlace1;
// 數據庫Login
foreach (CrystalDecisions.Shared.IConnectionInfo connection in this.customerByLivingPlace1.DataSourceConnections)
{
connection.SetConnection("localhost", "Real_EstatePC", "**", "**");
}
this.crystalReportViewer1.Refresh();
// 子報表的Login
foreach (CrystalDecisions.CrystalReports.Engine.ReportDocument sr in document.Subreports)
{
foreach (CrystalDecisions.Shared.IConnectionInfo connection in this.customerByLivingPlace1.DataSourceConnections)
{
connection.SetConnection("localhost", "Real_EstatePC", "**", "**");
}
}
注:customerByLivingPlace1指向rpt。
WebForm:
首先,為了登錄方便,將數據庫的用戶名和密碼先寫到Web.config中:
<appSettings>
<add key="DBServerName" value="你的數據庫服務器" />
<add key="DBUserID" value="sa" />
<add key="DBPassWord" value="UU1Tc3lzdGVt" />
</appSettings>
然后寫個類來統一驗證登錄
using System;
using System.Collections.Generic;
using System.Text;
using System.Configuration;
namespace BLL
{
public class LoginCrystalReport
{
public void Login( CrystalDecisions.CrystalReports.Engine.ReportDocument report)
{
string serverName=ConfigurationManager.AppSettings["DBServerName"];
string userId = ConfigurationManager.AppSettings["DBUserID"];
string passWord=ConfigurationManager.AppSettings["DBPassWord"];
//Set Database Logon to main report
foreach (CrystalDecisions.Shared.IConnectionInfo connection in report.DataSourceConnections)
{
if (connection.ServerName == serverName)
{
connection.SetLogon(userId, passWord);
}
}
//Set 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(userId, passWord);
}
}
}
}
}
}