Crystal Reports — не удалось открыть набор строк

StackOverflow https://stackoverflow.com/questions/400717

  •  03-07-2019
  •  | 
  •  

Вопрос

Что можно сделать, чтобы устранить исключение:

CrystalDecisions.CrystalReports.Engine.InternalException:Не удалось открыть набор строк.

Это было полезно?

Решение

Это общая ошибка в Crystal Reports, возникающая при сбое запроса отчета.Причин может быть несколько.Если ваш отчет был ориентирован на определенную базу данных, а затем база данных была изменена без обновления отчета, это может привести к этому.Это также может быть вызвано сбоем самого запроса, например, если отчет основан на хранимой процедуре, которая не существует в базе данных, для которой выполняется отчет.Попробуйте проверить базу данных для отчета.

Другие советы

Как уже говорилось, это общая ошибка, и, как и все подобные ошибки, она очень разочаровывает.Проблема в том, что в VS 2003 нет опции предварительного просмотра отчетов Crystal, поэтому трудно отследить источник проблемы.Поэтому лучший способ решить эту проблему — создать пустой проект в версии 2005 или более поздней версии, импортировать отчет Crystal и запустить предварительный просмотр.Тогда вы получите более конкретную ошибку.

У меня была та же проблема, и я получил это сообщение об ошибке:

В наборе результатов не удалось найти одно или несколько полей.Используйте «Проверить базу данных», чтобы обновить отчет.Ошибка в файле имя файла {9FEE6406-1613-409A-B9BD-C5FDA24E3DEE}.rpt:

Столбец набора строк не найден.

Я использовал хранимую процедуру для сбора данных для отчета и, конечно же, передал недопустимый параметр для SP.Дважды проверьте тип и значение параметров, если вы используете SP для заполнения данных отчета.

Удачи!

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

Это вызвано некоторым несоответствием в ваших отношениях, например, противоположным левым соединением или чем-то подобным.У CR также есть плохая привычка создавать ссылки «по умолчанию» каждый раз, когда вы изменяете список таблиц и представлений, необходимых для отчета.Иногда он даже может автоматически создавать рекурсивные ссылки, которые не могут быть видны «сразу» на экране отношений.

Если вы не можете определить, какое отношение(я) вызывает проблему (иногда это не так очевидно), вам придется провести тест методом проб и ошибок, добавляя или удаляя таблицы из отчета.

Каждый раз, когда вы добавляете новую таблицу в Crystal, она добавляет свои собственные ссылки на уже связанные таблицы, а иногда даже связывает два поля из одной таблицы.Убедитесь, что вы знаете свои ссылки, чтобы пройти по ним после добавления таблицы, и прокрутите все таблицы, чтобы увидеть любые ссылки, созданные из той же таблицы.

Я получил :

Crystaldecisions.crystalReports.Engine.InternaleXcept

Гугл привел меня сюда.Для тех у кого похожие проблемы.

Для записи:У меня был массив byte[] с изображением, я удалил журнал из отчета, и ошибка прекратилась.Теперь мне нужно выяснить, что я сделал не так с логотипом.

У меня была такая проблема: мы используем логины SQL для нашей безопасности (не интегрированные/DSN-соединения)

Предоставив пользователю права на выполнение моей хранимой процедуры, я устранил проблему.

Действительно, нельзя больше ненавидеть Crystal за маскировку исключений — пусть это станет уроком для всех программистов;

Try
   'your code here
Catch
   Throw new exception("Hey, here's a really friendly but completely useless error message")
End Try

приведет к боли будущим разработчикам - НЕ ДЕЛАЙТЕ ЭТОГО!

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

а) Обновление отчета (значок в виде молнии). Если у вас возникла проблема с полем, например с полем SQL, вы получите сообщение об ошибке, а затем отобразите окно редактирования поля.

б) Запуск запроса непосредственно на SQL. Если возникнет проблема с самим запросом, вы также получите это сообщение в Crystal, но SQL точно сообщит вам, что пошло не так.

Проверять Изменение информации для входа в базу данных Crystal Report во время выполнения в VS2005 для помощи.

Важная строка в нем:

table.Location = Database & ".dbo." & table.Name

Для меня проблема была решена, когда я вошел в систему и снова вернулся на SQL-сервер, к которому подключался отчет.

В процедуре вашего магазина. Если вы используете

SET NOCOUNT ON;

Тогда просто удали это

--SET NOCOUNT ON;

Теперь проверьте свою базу данных отчетов, создайте и запустите свое решение.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top