TableLogOnInfo l=new TableLogOnInfo();
l.ConnectionInfo.ServerName=MyConfig.GetappSettings("server");
l.ConnectionInfo.DatabaseName=MyConfig.GetappSettings("database");
l.ConnectionInfo.UserID=MyConfig.GetappSettings("uid");
l.ConnectionInfo.Password=MyConfig.GetappSettings("pwd");
foreach(Table t in r.Database.Tables)
{
t.ApplyLogOnInfo(l);
}
l.ConnectionInfo.ServerName=MyConfig.GetappSettings("server");
l.ConnectionInfo.DatabaseName=MyConfig.GetappSettings("database");
l.ConnectionInfo.UserID=MyConfig.GetappSettings("uid");
l.ConnectionInfo.Password=MyConfig.GetappSettings("pwd");
foreach(Table t in r.Database.Tables)
{
t.ApplyLogOnInfo(l);
}
解决方案 »
- linq的in问题
- 一个jquery取Json数据的问题。谢谢。(有码)
- GridView 表头如何换行? (例如共8字分两行,每行4字)
- C#.NET中播放数据库中以二进制数存放的.MP3或者.WAV文件
- 求一个商品点击量的代码
- frameset的问题(在线等)
- 关于localhost和127.0.0.1还有IE和火狐的问题.急!急!急! 我这里没多少分了,麻烦大家帮一下忙
- 求教:如何用ASP.NET做网页中的调色板
- 大家有没有好办法深入学习C#及面向对象
- 按条件产生。。求帮助啊。。
- 为什么我以前的项目里的b2cui.csproj文件不能.net打开呢
- 关于企业行事历datagrid的绑定?
foreach(Table t in r.Database.Tables)
{
t.ApplyLogOnInfo(l);
}
r是什么东西?
Dim loginfo As TableLogOnInfo = New TableLogOnInfo()
Dim oRpt As ReportDocument = New ReportDocument()
Dim fs_filename = Server.MapPath(".")
fs_filename += "\report\crystalreport1.rpt"
oRpt.Load(fs_filename)
loginfo.ConnectionInfo.ServerName = "aa" '服务名
loginfo.ConnectionInfo.DatabaseName = "bb" '库
loginfo.ConnectionInfo.UserID = "cc" '用户名
loginfo.ConnectionInfo.Password = "dd" '
oRpt.Database.Tables(0).ApplyLogOnInfo(loginfo)
crv_aa.ReportSource = oRpt
问题:
CrystalReports 登录失败
---------------------------------------------------------------
原因一: NTFS 文件夹权限的问题!
文件夹:
VS.NET Crystal Reports:
C:\Program Files\Microsoft Visual Studio .NET\Crystal Reports\Viewers
Crystal Reports 9.2:
C:\Program Files\Common Files\Crystal Decisions\2.0\crystalreportviewers
设置上述文件夹的“安全”,即NTFS 文件夹权限的问题!
1、添加当前用户,比如 Administrator,,权限“写入”;
2、添加用户 ASPNET,权限“写入”!
---------------------------------------------------------------
原因二:数据库登录问题
在报表的cs文件中,加上数据库连接。
1.TableLogonInfo
.使用TableLogonInfo
Dim ReportDoc As New ReportDocument()
Dim logonInfo As New TableLogonInfo
Dim table As table
ReportDoc.Load("C:\Rpts\publish.rpt")
For Each table IN ReportDoc.DataBase.Tables
logonInfo= table.LogonInfo
with logonInfo.connectioninfo
.serverName= "Localhost"
.Databasename= "pubs"
.UserID= "sa"
.Password=""
End With
table.applyLogonInfo(logonInfo)
next table
Crviewer.reportsource= reportDoc
2.如果是多個相關表格生成的報表,最好以存儲過程為數據源建立報表
代码放在 Page_load 事件里!
试试 info.ConnectionInfo.ServerName = "Localhost"
用户名和密码的正确性再确定一下!
——————————————————————————————————————
调试成功后,可以考虑:
将“数据库连接信息”存放在 web.config 配置文件,容易维护
——————————————————————————————————————
using CrystalDecisions.Shared ; //负责解释TableLogOnInfo类
using CrystalDecisions.CrystalReports.Engine ; //负责解释ReportDocument类private void Page_Load(object sender, System.EventArgs e)
{
TableLogOnInfo logOnInfo = new TableLogOnInfo ();
//这里必须事先申明一个ReportDocument对象 Report,同时加载数据报表
ReportDocument oRpt = new ReportDocument();
//获取.rpt文件真实路径
string path;
path=Server.MapPath ("cr.rpt");
oRpt.Load (path);//从web.config中获取logOnInfo参数信息
string a,b,c,d;
//获取ServerName
a=System.Configuration.ConfigurationSettings.AppSettings ["servername"];
//获取DatabaseName
b=System.Configuration.ConfigurationSettings.AppSettings ["database"];
//获取UserId
c=System.Configuration.ConfigurationSettings.AppSettings ["userid"];
//获取password
d=System.Configuration.ConfigurationSettings.AppSettings ["pass"];
//设置logOnInfo参数
logOnInfo.ConnectionInfo.ServerName = a;
logOnInfo.ConnectionInfo.DatabaseName = b;
logOnInfo.ConnectionInfo.UserID = c;
logOnInfo.ConnectionInfo.Password = d;oRpt.Database .Tables [0].ApplyLogOnInfo (logOnInfo);//建立.rpt文件与CryStalReportviewer文件之间的连接
CrystalReportViewer1.ReportSource = oRpt;DataBind();
}