Crystal Reports - предоставлен недопустимый аргумент. Не удалось открыть набор строк. ADO.Net xml

Хорошо, вот сценарий, который у меня есть приложение VB6, которое переписывается для asp.net 3.5. У меня есть набор Crystal Reports, которые обновляются до Crystal Reports 10.5 (который включен в Visual Studio 2008). Все старые отчеты использовали OLEDB. Я беру операторы sql, используемые в отчетах, и помещаю их в базу данных. Затем я запускаю автоматизированный процесс для создания набора данных из этих операторов выбора, сериализую набор данных и сохраняю схему и данные в виде XML-документа. Затем я перехожу к старому отчету, обновляю его до Crystal Reports 10.5 и меняю расположение источника данных, чтобы он использовал XML-документ.

Когда отчет запускается, я создаю тот же DataSet и вместо его сериализации как XML назначаю его отчету (см. Ниже)

 rd.Database.Tables(0).SetDataSource(ds)

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

Предоставлен неверный аргумент. Не удалось открыть набор строк. Ошибка в файле C: \ DOCUME ~ 1 \ username \ LOCALS ~ 1 \ Temp \ R-302 {D49E0C73-47AC-4363-AAD5-E925DFCF446E} .rpt: недопустимый аргумент для базы данных. в CrystalDecisions.ReportAppServer.ConvertDotNetToErom.ThrowDotNetException (Exception e) в CrystalDecisions.ReportSource.EromReportSourceBase.ExportToStream (ExportRequestContext reqContext) в CrystalDecisions.CrystalReports.Engine.Format

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


person runxc1 Bret Ferrier    schedule 08.07.2009    source источник


Ответы (3)


Я публикую это здесь, потому что это лучший результат для "Invalid Argument Provided Crystal".

Я работал в Crystal Reports XI над отчетом, который был связан с источником данных, который я пытался изменить через графический интерфейс. Выбор нового источника данных и нажатие кнопки «Обновить» ничего не меняет, и я закрою диалоговое окно, после чего получу сообщение «Предоставлен недопустимый аргумент». Я много чего пробовал, прежде чем в конце концов закрыть и снова открыть файл, и это сработало, когда я попробовал снова.

Это позволило мне изменить источник данных, не удаляя ни одно из связанных полей.

Мой рабочий компьютер остается подключенным / включенным / заблокированным 24/7 для целей VPN, и я открыл соответствующий отчет накануне. Я предполагаю, что соединение с экземпляром SQL истекло и не восстанавливается.

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

person Adam James    schedule 07.11.2013

У меня была точно такая же ошибка и контекст (Crystal Report в Visual Studio 2008). Использование моего нового соединения в новом отчете было нормальным, но назначение этого же соединения старому отчету (с «Set Datasource Location») вызвало эту ошибку при использовании отчета с функцией ExportToStream.

В конце концов я зашел в «Эксперт по базам данных», удалил мою связь и сказал «ОК» в поле «Удалить файл»: «В отчете есть поля из этого файла. Продолжить?» При этом были удалены все поля в отчете. Мне нужно снова вставить их и заново выбрать поля для моих групп, но, по крайней мере, мне не пришлось переделывать всю компоновку.

Думаю, это ошибка в Crystal Report для Visual Basic.

person Matt Roy    schedule 12.02.2013

У меня такая же ошибка при более старом соединении.

Разрешение :

  • Откройте мастер подотчетов
  • Создать новое соединение
  • Используйте новое соединение для создания подотчетов
person RootTech    schedule 06.03.2021