2009-04-07 21 views
1

.xsdをビルドしたときに、各テーブルの列を選択しなければならず、テーブルのスキーマが作成されました。だから私はどのように取得することができます選択文字列をベースとして使用するDataAdapterの新しいインスタンスのためのコマンドを選択し、必要に応じてWhereとOrderBy句を追加するだけですか?DataAdapterベーステーブルスキーマから文字列を選択しますか?

これは、(同じテーブルの)各DataAdapterのフィールドリストを.xsdファイル内のそのテーブルのスキーマと同期させる必要がないようにします。

特定のテーブルスキーマで動作する複数のDataAdapterを持つことは一般的ではありませんが、WhereとOrderBy節には異なるパラメータがありますか?確かに、同じテーブルスキーマで動作する6つのDataAdapterのSelect文字列のフィールドリスト部分を維持(または冗長的に構築)する必要はありません。

私は、この擬似コードのようなものを想定しています:

BaseSelectString = MyTypedDataSet.JobsTable.GetSelectStringFromSchema() // Is there such a method or technique? 

WhereClause = " Where SomeField = @Param1 and SomeOtherField = @Param2" 
OrderByClause = " Order By Field1, Field2" 

SelectString=BaseSelectString + WhereClause + OrderByClause 

OleDbDataAdapter adapter = new OleDbDataAdapter(SelectString, MyConn) 

答えて

2

各テーブルには、デフォルトのクエリ(それのチェックでトップに1つずつ)があります。テーブルをデータセットにドラッグしてクエリを作成すると、テーブルをスキーマ化するために使用するSQL文が書き込まれました。そのクエリを単純にしておくと、実際にはコードで使用しない場合があります。そのクエリを編集してテーブルスキーマを更新することはいつでも可能です。

既定のクエリを開くたびに、データソースに接続され、以前には存在しなかった新しい列を選択することができます。既存の列を更新する場合は、クエリを開く前にすべての列をテーブルから削除します。クエリを保存すると、更新された列が追加されます。

接続文字列に列情報を表示する権限があることを確認してください。

単一のTableAdapterに複数のクエリを追加できます。デザイナのTableAdapterは、上部にテーブルスキーマ、下部にクエリがあるセクションで表示されます。デフォルトのクエリは、他のクエリからの出力に使用できる列を制御します。追加のクエリを追加するには、TableAdapterを右クリックして[Add-> Query]を選択するか、TableAdapterの下部を選択する場合は[Add Query ...]を選択します。作成する新しいSQL問合せは、デフォルトの問合せからSQLで開始されます。それぞれの新しいクエリに、デフォルトクエリの「Fill」メソッドまたは「GetData」メソッドの代わりに使用できるメソッド名を付けます。それぞれの新しいクエリーは、異なる「where」句パラメータを持つことができますが、デフォルトクエリーに一致する結果セットを持つことを前提としています。短い

  • は、あなただけの複数のクエリを追加し、各テーブルのための単一のTableAdapterのを有することができます。

  • それぞれの追加クエリは、すべて同じ列を返す限り、異なるWhere句パラメータを持つことができます。
関連する問題