例外を解決するためにできること:
CrystalDecisions.CrystalReports.Engine.InternalException:行セットを開くことができませんでした。
これは、レポートクエリが失敗するたびに発生するCrystalReportsの一般的なエラーです。いくつかの原因が考えられます。レポートが特定のデータベースを対象としていて、レポートを更新せずにデータベースが変更された場合、これが原因である可能性があります。また、レポートが実行されているデータベースに存在しないストアドプロシージャにレポートが基づいている場合など、クエリ自体の何かが失敗したことが原因である可能性もあります。レポートのデータベースを確認してみてください。
同じ問題が発生し、次のエラーメッセージが表示されました。
結果セットにもう1つ以上のフィールドが見つかりませんでした。データベースの検証を使用して、レポートを更新します。ファイルのエラーファイル名 {9FEE6406-1613-409A-B9BD-C5FDA24E3DEE} .rpt:
行セット列が見つかりませんでした。
ストアドプロシージャを使用してレポートのデータを収集していましたが、SPに無効なパラメーターを渡していたことは確かです。 SPを使用してレポートデータを入力する場合は、パラメーターのタイプと値を再確認してください。
幸運を!
すでに述べたように、これは一般的なエラーであり、そのようなすべてのエラーと同様に、非常に苛立たしいものです。問題は、VS 2003にはCrystalレポートのプレビューオプションがないため、問題の原因を突き止めるのが難しいことです。したがって、これを解決する最善の方法は、vs 2005以降で空白のプロジェクトを作成し、Crystalレポートをインポートして、プレビューを実行することです。その場合、より具体的なエラーが発生します。
サブレポートのあるレポートでも同じエラーが発生しました。各サブレポートに切り替えて、データベース/テーブル/ビューで再度確認することで問題が解決しました。
私が受け取った:
CrystalDecisions.CrystalReports.Engine.InternalExceptionが処理されませんでしたメッセージ=レポートアプリケーションサーバーが失敗しました
グーグルは私をここに連れてきた。同様の問題を抱えている人のために。
記録のために:私は画像を含むbyte []配列を持っていて、レポートからログを削除し、エラーは停止しました。私は今、ロゴで何が間違っているのかを理解する必要があります。
ストアドプロシージャで使用している場合
SET NOCOUNT ON;
次に、これを削除します
--SET NOCOUNT ON;
次に、レポートデータベースを確認し、ソリューションを構築して実行します。
私はこの問題を抱えていました-セキュリティのためにSQLログインを使用しています(統合/ DSN接続ではありません)
ストアドプロシージャの実行権限をユーザーに付与することで、問題を修正しました。
本当に、Crystalの例外マスキングをこれ以上嫌うことはできませんでした。これをすべてのプログラマーへの教訓にしましょう。
Try
'your code here
Catch
Throw new exception("Hey, here's a really friendly but completely useless error message")
End Try
将来の開発者に苦痛をもたらすでしょう-それをしないでください!
VS2005の実行時にCrystal Reportデータベースのログオン情報を変更する を確認してください。
その中の重要な行は次のとおりです。
table.Location = Database & ".dbo." & table.Name
Crystalに新しいテーブルを追加するたびに、すでにリンクされているテーブルに独自のリンクが追加され、同じテーブルの2つのフィールドがリンクされることもあります。テーブルを追加した後に通過するためにリンクを知っていることを確認し、すべてのテーブルをスクロールして、同じテーブルへのリンクの作成を確認してください
私の場合、レポートが接続しているSQLサーバーにログオンして再度ログインすると、問題が修正されました。
データベースを検証すると、データベースが最新であることが示される場合があります。その場合は、さらに2つのオプションを確認する必要があります。
a)レポート(稲妻の形をしたアイコン)を更新します。SQLフィールドなどのフィールドに問題がある場合は、エラーが表示され、フィールドの編集ウィンドウが表示されます。
b)SQLで直接クエリを実行します。クエリ自体に問題がある場合は、Crystalでもこのメッセージが表示されますが、SQLは何が問題だったかを正確に示します。
これは、反対側の左結合など、関係の不一致が原因で発生します。 CRには、レポートに必要なテーブルとビューのリストを変更するたびに「デフォルト」リンクを作成するという悪い習慣もあります。リレーション画面で「一度に」表示できない可能性のある再帰リンクを自動的に作成することもあります。
問題の原因となっている関係が見つからない場合(場合によってはそれほど明白ではない場合)、レポートからテーブルを追加/削除して、試行錯誤のテストを行う必要があります。