Что можно сделать для устранения исключения:
CrystalDecisions.CrystalReports.Engine.InternalException: Не удалось открыть набор строк.
Что можно сделать для устранения исключения:
CrystalDecisions.CrystalReports.Engine.InternalException: Не удалось открыть набор строк.
Это общая ошибка в Crystal Reports при сбое запроса отчета. Это может быть несколько причин. Если ваш отчет был нацелен на определенную базу данных, а затем база данных была изменена без обновления отчета, это может вызвать ее. Это также может быть вызвано тем, что в самом запросе возникает ошибка, например, если отчет основан на хранимой процедуре, которая не существует в базе данных, с которой работает отчет. Попробуйте проверить базу данных для отчета.
Как сказано, это общая ошибка, и, как и все подобные ошибки, она очень расстраивает. Проблема в том, что VS 2003 не имеет опции предварительного просмотра для хрустальных отчетов, поэтому трудно отслеживать источник проблемы. Таким образом, лучший способ решить это - создать пустой проект в 2005 или позднее, импортировать отчет о кристалле и запустить предварительный просмотр. Тогда вы получите более конкретную ошибку.
У меня была такая же проблема, и я получил это сообщение об ошибке:
В результирующем наборе невозможно найти больше полей. Используйте "Проверка базы данных" для обновления отчета. Ошибка в имени файла файла {9FEE6406-1613-409A-B9BD-C5FDA24E3DEE}.rpt:
Не удалось найти столбец строк.
Я использовал хранимую процедуру для сбора данных для отчета, и, конечно же, я передавал недопустимый параметр для SP. Дважды проверьте тип и значение параметров, если вы используете SP для заполнения данных отчета.
Удачи!
Я также прошел ту же ошибку с сообщением, имеющим вспомогательные отчеты. Проблема разрешена, когда я переключаюсь на каждый дополнительный отчет и снова проверяю его с помощью базы данных/таблиц/представлений.
Это вызвано некоторым несоответствием в ваших отношениях, как противоположные левые соединения или что-то подобное. CR также имеет плохую привычку создавать ссылки по умолчанию каждый раз, когда вы изменяете список таблиц и представлений, необходимых для отчета. Он даже иногда может автоматически создавать рекурсивные ссылки, которые могут не отображаться "сразу" на экране отношений.
Если вы не можете найти, какое отношение (-ы) вызывает проблему (иногда это не так очевидно), вам придется пройти пробный и пробный тест, добавив/удалив таблицы из вашего отчета.
Каждый раз, когда вы добавляете новую таблицу в кристалл, она добавляет свои собственные ссылки на уже связанные таблицы, иногда даже связывает 2 поля из одной таблицы. Убедитесь, что вы знаете свои ссылки, чтобы пройти после добавления таблицы и прокрутки всех таблиц, чтобы увидеть, какие ссылки создаются в одной таблице.
Я получил:
CrystalDecisions.CrystalReports.Engine.InternalException был необработанным Сообщение = Ошибка сервера приложений отчетов
Google привел меня сюда. Для тех, у кого есть подобные проблемы.
Для записи: у меня был массив byte [] с изображением и удаленный журнал из отчета, и ошибка была остановлена. Теперь я должен выяснить, что я сделал с логотипом.
У меня была эта проблема - мы используем логики SQL для нашей безопасности (не интегрированные/DSN-соединения)
Предоставляя права доступа для пользователя для моей хранимой процедуры, я исправил проблему.
Действительно, на самом деле нельзя было ненавидеть Crystal больше за маскировку их исключений - пусть это станет уроком для всех программистов;
Try
'your code here
Catch
Throw new exception("Hey, here a really friendly but completely useless error message")
End Try
приведет к боли для будущих разработчиков - НЕ ДЕЛАЙТЕ ЭТО!
Когда вы проверяете свою базу данных, она может сказать вам, что она актуальна, в этом случае у вас есть еще две возможности для проверки:
a) Обновляя отчет (значок молнии), если у вас есть проблема с полем, например поле SQL, оно выдаст вам ошибку, а затем покажет вам окно редактирования для поля.
b) Запуск запроса непосредственно на SQL, если есть проблема с самим запросом, вы также получите это сообщение в Crystal, но SQL скажет вам, что именно не так.
Отметьте для получения справки о входе в базу данных отчета Crystal Report во время выполнения в VS2005.
Важная строка в ней:
table.Location = Database & ".dbo." & table.Name
Для меня проблема была исправлена, когда я зарегистрировался и зашел на сервер SQL, к которому отчет подключался к
В вашей процедуре магазина Если вы используете
SET NOCOUNT ON;
Затем просто удалите этот
--SET NOCOUNT ON;
Теперь проверьте свою базу данных отчетов, создайте и запустите свое решение.