Сбой подключения к базе данных Crystal Report - PullRequest
0 голосов
/ 30 мая 2018

Я внедряю форму Windows, и при нажатии кнопки она должна напечатать отчет с CrystalReportViewer.Я разрабатываю его в Visual Studio 2017, и на моей машине установлены CR CR 32- и 64-разрядные.

Это мой код:

using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.ReportSource;
using CrystalDecisions.Shared;

..............
..............
        ConnectionInfo crconnectioninfo = new ConnectionInfo();
        ReportDocument cryrpt = new ReportDocument();
        TableLogOnInfos crtablelogoninfos = new TableLogOnInfos();
        TableLogOnInfo crtablelogoninfo = new TableLogOnInfo();

        string path = "my//report//path.rpt";
        cryrpt.Load(path);

        Tables CrTables;

        crconnectioninfo.ServerName = "MyServerName";
        crconnectioninfo.DatabaseName = "MyDatabaseName";
        crconnectioninfo.UserID = "MyUserName";
        crconnectioninfo.Password = "MyPassword";

        CrTables = cryrpt.Database.Tables;
        foreach (Table crtable in CrTables)
        {
            crtablelogoninfo = crtable.LogOnInfo;
            crtablelogoninfo.ConnectionInfo = crconnectioninfo;
            crtable.ApplyLogOnInfo(crtablelogoninfo);
        }

        crystalReportViewer1.ReportSource = cryrpt;

Он отлично работает на моей машинеи некоторые другие.

Когда я создаю его в режиме выпуска и устанавливаю приложение на другие машины, кто-то работает, а кто-то нет.Ошибка в том, что отчет не может подключиться к базе данных.

Я попытался пропинговать сервер, и это нормально.

Вот трассировка стека исключения:

Stack Trace:   in CrystalDecisions.ReportAppServer.Controllers.ReportSourceClass.GetLastPageNumber(RequestContext pRequestContext)
  in CrystalDecisions.ReportSource.EromReportSourceBase.GetLastPageNumber(ReportPageRequestContext reqContext)

Inner Source: rptcontrollers.dll

HResult: 2147217393

На всех машинах установлены CRRuntime (то же самое я имею на моем!).Может быть, я скучаю по некоторым зависимостям, но не знаю, с чем.

Я заметил, что это не работает на машинах, на которых не установлена ​​Visual Studio.Но я не могу установить Visual Studio на все ПК.

Я не могу найти похожую проблему в Интернете.Любая помощь будет оценена.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 30 мая 2018

Проверьте неработающие компьютеры, чтобы убедиться, что в них отсутствуют какие-либо распространяемые файлы Microsoft Visual C ++ по сравнению с рабочими компьютерами.Я приложил скриншот трассировки Procmon, на котором запущен пример приложения, использующего Crystal Viewer.Трассировка показывает, что распространяются C ++ распространяемые.Если это не так, попробуйте запустить Procmon, чтобы увидеть, отсутствуют ли какие-либо зависимости.

Трасса Procmon, показывающая, что распространяемые файлы C ++ называются

0 голосов
/ 30 мая 2018

Crystal Report использует sql Connectivity SDK для подключения к базе данных.

Это функции, которые необходимо установить для обеспечения работоспособности соединения:

Client Tools Connectivity

ClientИнструменты Обратная совместимость

Клиентские инструменты SDK

Инструменты управления - основные

Инструменты управления - полная

Связь с клиентом SQL SDK

страница загрузки здесь

Надеюсь, это поможет!

...