データ バインド ジェネレータ

データ バインド ジェネレータを使用すると、既存のデータ ソースから取得したデータを列に設定できます。利用できるデータ ソースの例としては、データベース、Microsoft Excel ブック、テキスト ファイルなどがあります。

データ バインド ジェネレータの使用

データ バインド ジェネレータを使用して列にデータを設定するには、列を正しく構成する必要があります。DataBound ジェネレータを列のジェネレータとして指定し、列のジェネレータのプロパティを設定する必要があります。詳細については、「列へのデータ生成の詳細の指定」を参照してください。

データ バインド ジェネレータのプロパティ

データ バインド ジェネレータに固有のプロパティを次に示します。

  • [接続情報] プロパティ。データを読み取るデータ ソースの接続文字列を指定します。接続文字列は、次の 3 つの方法で指定できます。

    • プロパティに接続文字列を入力する。

    • 下向き矢印をクリックし、既存の接続をクリックする。

    • 下向き矢印を右クリックし、[新しい接続の追加] をクリックする。

  • [クエリの選択] プロパティ。データ ソースからデータを取得するクエリを選択します。たとえば、次のように入力できます。

    SELECT * FROM dbo.Customers
    

ジェネレータの出力

[接続情報] プロパティと [クエリの選択] プロパティを設定することにより、データ ソースから返されるデータ セットを指定できます。これらのプロパティを設定した後で、[列の詳細] ウィンドウの [ジェネレータの結果] 列を設定する必要があります。[ジェネレータの結果] 列には、データ セット内の、データの設定対象の列のデータ型に該当する列の一覧が含まれています。下向き矢印をクリックして、使用するデータを指定できます。

クエリが該当するデータ型の列を返さない場合は、"<強制出力なし>" というテキストが表示されます。このクエリから列名のない列が返される場合は、クエリを変更してすべての列に名前を付ける必要があります。"入力検証に失敗しました。エラー: スキーマ情報を取得できませんでした。SELECT ステートメントによって、名前のない列を含む結果セットが生成される場合は、"AS" キーワードを使用して列に名前を付けてください" というエラーが表示されます。次の例は適切ではありません。

SELECT * FROM dbo.Customers

この場合は、次のコードを使用します。

SELECT CustomerID, CompanyName, ContactName FROM dbo.Customers

大規模なデータ ソースに関する考慮事項

データ バインド ジェネレータを使用して大規模なデータ ソースからデータを読み取ると、パフォーマンス上の問題が発生することがあります。パフォーマンスの問題を避けるには、次の方法が役立ちます。

  • 必要な列だけを選択する。次の例は適切ではありません。

    SELECT * FROM dbo.Customers
    

    この場合は、次のコードを使用します。

    SELECT ContactName FROM dbo.Customers
    
  • 必要な量のデータだけを選択する。たとえば、生成するデータが 50 行だけで、データ ソースに 2,000 行のデータが含まれている場合は、最初の 50 行のデータだけを選択します。次の例は適切ではありません。

    SELECT * FROM dbo.Customers
    

    この場合は、次のコードを使用します。

    SELECT TOP 50 * FROM dbo.Customers
    

    以上の 2 つの方法を、次の例のように組み合わせることができます。

    SELECT TOP 50 ContactName FROM dbo.Customers
    

参照

概念

標準データ ジェネレータの種類

その他の技術情報

標準データ ジェネレータの使用

データ ジェネレータによるデータの生成