2015-08-09 3 views
1

Моя база данных - это удаленная база данных Mysql, я могу получить доступ к кристальным отчетам о моем приложении через различные ПК, но есть проблема с одним ПК, хотя я установил соединитель 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

Вы проверили, какой-либо фиктивный отчет открывается на этом ПК? Или это проблема только с этим отчетом? –

+0

Можете ли вы отлаживать и видеть подробности об исключении – aMazing

+0

@ItiTyagi все отчеты из этой базы данных вызывают эту проблему –

ответ

0

После нескольких дней борьбы мне удалось решить проблему, оказалось, что мне пришлось установить версию MySQL ODBC 32Bit на ПК, у которой была эта проблема, хотя на этом компьютере уже установлен MySQL ODBC, но это была 64-разрядная версия. Итак, если кто-то сталкивается с аналогичной проблемой, я предлагаю вам установить обе версии MySQL ODBC, если ваш компьютер - 64-битный ПК.