チュートリアル:ADO.NET データセットへの接続

概要

このチュートリアルでは、データセット スキーマを使用して Crystal レポートを ADO.NET データセットに接続する方法を学習します。ADO.NET データセットからレポートを作成する場合は、レポートが直接データベースに接続されないので、ステップをいくつか追加する必要があります。

ADO.NET データセット スキーマは、XML のデータ構造のテンプレートを提供します。ただし、レポートはデータセット スキーマのみからデータを取得することはできません。データセット スキーマは、最初に厳密に型指定された DataSet インスタンスまたは一般的な DataSet インスタンスとして作成する必要があります。次に、DataAdapter クラスを使用して DataSet インスタンスにデータを入力します。

このチュートリアルでは、ADO.NET データセットからレポートを作成することによって処理が複雑になるので、スキーマを作成してデータセットに値を入力するプロセスを、Crystal Reports にバインドするコードから分離します。

Note

Crystal Reports for Visual Studio には、ADO.NET データセット スキーマを作成するための DataSet というテンプレートがあります。Visual Studio 2005 で作成された Web サイトでは、[新しい項目の追加]ダイアログ ボックスから DataSet テンプレートにアクセスできません。使用できるのは、デフォルトの“XML Schema”テンプレートのみです。ただし、コードを少し変更すれば(この後のステップで説明)、デフォルトの XML Schema テンプレートを使用して同じ結果を得ることができます。

まず、データ接続を作成し、その接続に基づいたデータセット スキーマを作成します。次に、値が入力された DataSet のインスタンスを返すプロパティを含むヘルパー クラスを作成します。最後に、データセットに Crystal レポートをバインドするコードを記述します。

Crystal レポートをバインドする場合は、次の内容を実行するコードを記述します。

  • レポートをインスタンス化します。
  • ヘルパー クラスの SetDataSource プロパティを、値を入力した DataSet プロパティに設定します。
  • 値を入力した Crystal レポートを CrystalReportViewer コントロールにバインドします。

最後に、Web サイトを構築している場合は、パフォーマンスとスケーラビリティの向上のために、値を入力した DataSet インスタンスを ASP.NET Cache オブジェクトに配置します。

レポートをバインドするコードをわかりやすくし、Web または Windows プロジェクト間のデータセットの再利用性を向上するために、データセットの構成プロセスと Crystal レポートのバインドのプロセスは明確に区別することをお勧めします。

サンプル コード

このチュートリアルは、プロジェクトの完全バージョンを示す Visual Basic および C# のサンプル コードと共に提供されます。このチュートリアルの手順に従って新しいプロジェクトを作成するか、またはサンプル コード プロジェクトを開いて完全バージョンを使用します。

サンプル コードは言語とプロジェクト タイプに分類され、フォルダに格納されています。各サンプル コード バージョンのフォルダ名は次のとおりです。

  • C# Web サイト: CS_Web_Data_DataSets
  • C# Windows プロジェクト: CS_Win_Data_DataSets
  • Visual Basic Web サイト:VB_Web_Data_DataSets
  • Visual Basic Windows プロジェクト: VB_Win_Data_DataSets

これらのサンプルが格納されたフォルダを探すには、「チュートリアルのサンプル コード」を参照してください。

この節の内容