データ バインド ジェネレーター
データ バインド ジェネレーターを使用すると、既存のデータ ソースから取得したデータを列に設定できます。 利用できるデータ ソースの例としては、データベース、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