Crystal report:未能打开连接

问题描述:

我的数据库是一个远程Mysql数据库,我可以通过各种PC访问我的应用程序的水晶报告,但是一台PC出现问题,即使我安装了mysql连接器并创建了与我的数据库连接使用ODBC成功。但是,当我打开它显示一条消息,报告“无法打开连接” enter image description hereCrystal report:未能打开连接

我用下面的代码为手动连接:

cI.ServerName = "Driver={MySQL ODBC 5.3 Unicode Driver};Server=x.x.x.x;Port=3306;Option=3;"; 
      cI.DatabaseName = "dbName"; 
      cI.UserID = "username"; 
      cI.Password = "pass"; 

      foreach (IConnectionInfo info in report.DataSourceConnections) 
      { 
       info.SetConnection(cI.ServerName, cI.DatabaseName, cI.UserID, cI.Password); 
      } 

      foreach (ReportDocument sub in report.Subreports) 
      { 
       foreach (IConnectionInfo info in sub.DataSourceConnections) 
       { 
        info.SetConnection(cI.ServerName, cI.DatabaseName, cI.UserID, cI.Password); 
       } 
      } 

我得到这个异常:

System.Runtime.InteropServices.COMException (0x800002F4): Failed to open the connection. 
Failed to open the connection. 
temp_32398d30-5e82-45f2-a356-0abdad3ba4c5 5168_1588_{1AF659C8-D14D-479F-B268-51AD72B9420A}.rpt 
    at CrystalDecisions.ReportAppServer.Controllers.DatabaseControllerClass.SetTableLocation(ISCRTable CurTable, ISCRTable NewTable) 
    at CrystalDecisions.CrystalReports.Engine.Table.set_Location(String value) 
    at School.UserInterface.StudentApp.PrintStudentInformation.connect(ReportDocument report) 
    at School.UserInterface.StudentApp.PrintStudentInformation.PrintStudentInformation_Load(Object sender, EventArgs e) 
    at System.Windows.Forms.Form.OnLoad(EventArgs e) 
    at System.Windows.Forms.Form.OnCreateControl() 
    at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible) 
    at System.Windows.Forms.Control.CreateControl() 
    at System.Windows.Forms.Control.WmShowWindow(Message& m) 
    at System.Windows.Forms.Control.WndProc(Message& m) 
    at System.Windows.Forms.ScrollableControl.WndProc(Message& m) 
    at System.Windows.Forms.Form.WmShowWindow(Message& m) 
    at System.Windows.Forms.Form.WndProc(Message& m) 
    at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) 
    at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) 
    at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) 
+0

你有没有检查过,这台PC上的虚拟报告是否开放?或者这只是本报告的一个问题? –

+0

你能调试和看到异常的细节 – aMazing

+0

@ItiTyagi从这个数据库中的所有报告都造成这个问题 –

经过几天的努力,我设法解决了这个问题,事实证明我不得不在PC上安装MySQL ODBC 32Bit版本,即使该PC已经安装了MySQL ODBC,但却是64位版本。 所以,如果有人遇到类似的问题,那么我建议你应该安装两个版本的MySQL ODBC,如果你的PC是64位的PC。