2015-12-15 106 views
0

我每次加载水晶报表时都遇到了问题。总是要求数据库登录,但是当我输入密码(这是我的连接密码)时,它总是说登录失败。加载水晶报表时提示数据库登录

这是我的代码:

Dim _ReportLogonInfos As New TableLogOnInfos 
    Dim _ReportLogonInfo As New TableLogOnInfo 
    Dim _ReportConInfo As New ConnectionInfo 
    Dim _Tables As Tables 
    Dim _Table As Table 

    With _ReportConInfo 
     .ServerName = "localhost" 
     .DatabaseName = "database" 
     .UserID = "root" 
     .Password = "Qwerty123" 
    End With 
    Dim _Report As New rptPrntIss 
    _Tables = _Report.Database.Tables 
    For Each _Table In _Tables 
     _ReportLogonInfo = _Table.LogOnInfo 
     _ReportLogonInfo.ConnectionInfo = _ReportConInfo 
     _Table.ApplyLogOnInfo(_ReportLogonInfo) 

    Next 
    CrystalReportViewer1.ReportSource = _Report 

回答

0

除了您所设置的,我还设置了以下(抱歉,这是在C#中没有VB.NET - 希望你能翻译):

 //SET DATASOURCE FOR EACH SUBREPORT IN REPORT 
     foreach (CrystalDecisions.CrystalReports.Engine.Section section in CrystalReportSource2.ReportDocument.ReportDefinition.Sections) 
     { 
      // In each section we need to loop through all the reporting objects 
      foreach (CrystalDecisions.CrystalReports.Engine.ReportObject reportObject in section.ReportObjects) 
      { 
       if (reportObject.Kind == ReportObjectKind.SubreportObject) 
       { 
        SubreportObject subReport = (SubreportObject)reportObject; 
        ReportDocument subDocument = subReport.OpenSubreport(subReport.SubreportName); 

        foreach (CrystalDecisions.CrystalReports.Engine.Table table in subDocument.Database.Tables) 
        { 
         // Cache the logon info block 
         TableLogOnInfo logOnInfo = table.LogOnInfo; 

         // Set the connection 
         logOnInfo.ConnectionInfo = crConnectionInfo; 

         // Apply the connection to the table! 
         table.ApplyLogOnInfo(logOnInfo); 
        } 
       } 
      } 
     } 
 if (CrystalReportSource2.ReportDocument.DataSourceConnections.Count > 0) 
      CrystalReportSource2.ReportDocument.DataSourceConnections[0].SetConnection(server, db, crystalUser, pwd); 
 CrystalReportSource2.ReportDocument.SetDatabaseLogon(crystalUser, pwd, server, db); 
+0

谢谢你..我已经解决了它。感谢这个帮助..你给我的想法..所以我可以继续我的项目。上帝保佑 :) – SyZ