Logon failed. 是你的报表在登陆服务器数据库的时候出现的问题看下面代码: Dim conn As New ConnectionInfo Dim log As TableLogOnInfo Dim tbl As Table Dim cn As New SqlClient.SqlConnection cn.ConnectionString = System.Configuration.ConfigurationSettings.AppSettings.Item("ConnectionString") With conn .ServerName = cn.DataSource .DatabaseName = cn.Database .UserID = ConfigurationSettings.AppSettings.Item("uid") .Password = ConfigurationSettings.AppSettings.Item("pwd") End With For Each tbl In rpt.Database.Tables log = tbl.LogOnInfo log.ConnectionInfo = conn tbl.ApplyLogOnInfo(log) Next
http://ww.cseek.com/20030327/1659638.shtml
qimini(循序渐进) :我试过first.rpt,这个控件就显示error了,说路径不对
private void Page_Load(object sender, System.EventArgs e)
{
crv.ReportSource="C:\\Inetpub\\wwwroot\\Crystal\\first.rpt";
crv.DataBind();
}--------------
现在的错误是:
---------
“/Crystal”应用程序中的服务器错误。
--------------------------------------------------------------------------------Logon failed.
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: CrystalDecisions.CrystalReports.Engine.LogOnException: Logon failed.源错误: 执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。 堆栈跟踪:
[LogOnException: Logon failed.]
.F(String , EngineExceptionErrorID
)
.A(Int16 , Int32 )
.@(Int16 )
CrystalDecisions.CrystalReports.Engine.FormatEngine.GetPage(PageRequestContext reqContext)
CrystalDecisions.ReportSource.LocalReportSourceBase.GetPage(PageRequestContext pageReqContext)
CrystalDecisions.Web.ReportAgent.u(Boolean N)
CrystalDecisions.Web.CrystalReportViewer.OnPreRender(EventArgs e)
System.Web.UI.Control.PreRenderRecursiveInternal()
System.Web.UI.Control.PreRenderRecursiveInternal()
System.Web.UI.Control.PreRenderRecursiveInternal()
System.Web.UI.Page.ProcessRequestMain()
是你的报表在登陆服务器数据库的时候出现的问题看下面代码:
Dim conn As New ConnectionInfo
Dim log As TableLogOnInfo
Dim tbl As Table
Dim cn As New SqlClient.SqlConnection
cn.ConnectionString = System.Configuration.ConfigurationSettings.AppSettings.Item("ConnectionString") With conn
.ServerName = cn.DataSource
.DatabaseName = cn.Database
.UserID = ConfigurationSettings.AppSettings.Item("uid")
.Password = ConfigurationSettings.AppSettings.Item("pwd")
End With For Each tbl In rpt.Database.Tables
log = tbl.LogOnInfo
log.ConnectionInfo = conn
tbl.ApplyLogOnInfo(log)
Next
先引入名称空间:
using CrystalDecisions.CrystalReports.Engine;代码:
private void Page_Load(object sender, System.EventArgs e)
{
ReportDocument oRpt = new ReportDocument();
string path2="C:\\Inetpub\\wwwroot\\Crystal\\first.rpt";
oRpt.Load(path2);
string cs="server=127.0.0.1;uid=sa;pwd=;database=pubs";
SqlConnection con=new SqlConnection(cs);
SqlCommand com=new SqlCommand("select *from stores",con);
con.Open();
SqlDataReader read=com.ExecuteReader();
this.CrystalReportViewer1.ReportSource=oRpt;
}
新版本的CrystalReportViewer无法运行显示老板本写的水晶报表,因为在VS.net2003运行显示VS.net2002自带的报表样例,会产生同样的错误;而运行显示VS.net2003自带的报表样例一切正常??????????
Webform
Winform下能够兼容
另外我看了一下软件自带的报表,它是用Access数据库,所以我新建了一张报表,连接它的Access数据库运行正常,但是连接自己建的Access 数据库则无法正常运行
1、数据库连接设置;
2、或者,数据库问题。数据库连接设置方法:
VS.NET
1、新建水晶报表文件,并进入“标准报表专家”;
2、在“数据”选项卡中设置“数据源”,选择“数据库文件”;
3、打开 Access 文件。Crystal Report 9
1、新建水晶报表文件,并进入“标准报表专家”;
2、在“数据”选项卡中设置“数据源”,选择“创建新连接”,Acess/Excel (DAO);
3、打开 Access 文件。数据库问题:
新建一个……