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);
}
}
}
}
}
}