Вход в базу данных Crystal Reports - PullRequest
5 голосов
/ 11 мая 2010

Проведя от 3 до 4 часов в Google, пытаясь найти решение моей проблемы, мне не повезло.

По сути, мы используем отчеты Crystal для наших приложений .NET с серверной частью sql, у нас много клиентов, у каждого из которых есть собственный сервер, поэтому в наших отчетах необходимо динамически устанавливать соединения. До недели назад это работало нормально. Однако несколько дней назад клиент сообщил, что получает запрос на вход в базу данных для отчета (только один отчет, остальные работали нормально). Мы были довольно озадачены, но нам удалось воспроизвести его на нетбуке, на котором не было установлено Visual Studio или SQL Server. В конце концов, разработчик решил воспроизвести отчет в надежде, что в этом конкретном отчете это будет просто странность.

1004

Ниже приведен скриншот того, что получают наши клиенты -

Снимок экрана http://img404.imageshack.us/img404/1375/loginf.png

а вот код, который я использую для установки информации о соединении в отчете

                cI.ServerName = (string)builder["Data Source"];
                cI.DatabaseName = (string)builder["Initial Catalog"];
                cI.UserID = (string)builder["User ID"];
                cI.Password = (string)builder["Password"];

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

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

Как всегда, любая помощь высоко ценится.

Ответы [ 3 ]

2 голосов
/ 19 мая 2010

Решение найдено, оказалось, что компоновщик соединений, который клиент использовал для настройки своей системы, не вводил имя экземпляра. Скорее всего, приложение .net прекрасно с ним работало. Тем не менее, с этим отсортированные отчеты кристаллов теперь работают без нареканий.

Спасибо за ваш вклад, Крейг.

2 голосов
/ 11 мая 2010

Возможно, проблема в том, как вы устанавливаете информацию аутентификации. Рассматривали ли вы использование метода ReportDocument.SetDatabaseLogon ? Вызовите его один раз для каждого уникального соединения с БД в отчете. Это устранит необходимость перечисления всех таблиц в отчете и, насколько я помню, необходимость перечислять таблицы подотчетов.

0 голосов
/ 18 февраля 2012

Поиск решения аналогичной проблемы привел меня к этому вопросу. Моя проблема / решение было немного другим, но я предполагаю, что другие с моей проблемой окажутся здесь, поэтому я опубликую свое решение здесь.

Если ваши пользователи видят что-то подобное при предварительном просмотре отчета:

Crystal Reports Viewer screen shot

затем при настройке данных для входа в SQL Server для отчета обязательно укажите имя service . Так, например, убедитесь, что вы даете Crystal «myserver \ myservice» вместо просто «myserver».

Моя программа может получать доступ к данным с SQL Server, используя только «myserver», но Crystal необходимо предоставить «myserver \ myservice».

...