您的位置:首页 > 数据库

去掉水晶报表的数据库验证界面

2010-07-07 18:25 363 查看
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);
}
}
}
}

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: