水晶报表Pull模式 每次调用水晶报表的时候都要输入数据库密码的解决方案

 

因为毕业设计的需要 所以研究了一下水晶报表。

前面报表设计什么的都很顺利 但到了调用水晶报表的时候 每次都要输入数据库密码。这很坑爹!

于是网上找了些资料,发现解决方法还是很多的。

不废话,直接贴代码。

方法一;

private void crystalReportViewer1_Load(object sender, EventArgs e)
{
//方法一;
ReportDocument rd = new ReportDocument();
string rdPath = Application.StartupPath + "\\CrystalReport1.rpt";//CrystalReport1.rpt属性改为始终复制 这样报表就会复制到启动目录
rd.Load(rdPath);//需要传入报表物理路径

TableLogOnInfo logInfo = new TableLogOnInfo();
logInfo.ConnectionInfo.ServerName = ".";
logInfo.ConnectionInfo.UserID = "sa";
logInfo.ConnectionInfo.Password = "123";
logInfo.ConnectionInfo.DatabaseName = "Northwind";

for (int i = 0; i < rd.Database.Tables.Count; i++)
{
rd.Database.Tables[i].ApplyLogOnInfo(logInfo);
}
crystalReportViewer1.ReportSource = rd;
}

 

 

方法二;

private void crystalReportViewer1_Load(object sender, EventArgs e)
{

CrystalReport1 rd = new CrystalReport1();//CrystalReport1.rpt下生成有它对应的唯一的CrystalReport1类。其继承自ReportClass:ReportDocument 可以直接用,其实他就是建立的报表的类 所以不用传路径

//后面的都一样
TableLogOnInfo logInfo = new TableLogOnInfo();
logInfo.ConnectionInfo.ServerName = ".";
logInfo.ConnectionInfo.UserID = "sa";
logInfo.ConnectionInfo.Password = "123";
logInfo.ConnectionInfo.DatabaseName = "Northwind";

for (int i = 0; i < rd.Database.Tables.Count; i++)
{
rd.Database.Tables[i].ApplyLogOnInfo(logInfo);
}
crystalReportViewer1.ReportSource = rd;
}

---恢复内容结束---

水晶报表Pull模式 每次调用水晶报表的时候都要输入数据库密码的解决方案,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。