親レコードと子レコードのサブセットをデータセットにロードしてからdatarelationsとforeignkeyconstraintsを設定するので、dataadapter select stmtをビルドするとき子レコードの場合、参照整合性エラーを避けるために、親が存在する子レコードのみがロードされていることを確認する必要があります。dataadapter selectコマンドがサブクエリでIN句を使用するローディングデータセット
daChild = new OleDBDataAdapter(CreateOledbCommand( "select * from ChildTable from(ds.tables(" ParentTable "")) "、dconn)は、親テーブルのサブセットがデータセットにロードされたため、 )
しかし、実行時に「未定義関数 'ds.tables' in式」エラーが発生しました。
だから、私はこのように、IN句に渡す1つの列のテーブルを作成しようとしました:
薄暗いMyDataViewのDataView =新しいDataViewの(ds.tables( "ParentTable"))として
薄暗いですDataTable = MyDataView.ToTable(偽、 "ParentKey")
daChild =新OleDbDataAdapterおよ(CreateOledbCommand(、dconn) "(MyTempParentTable)でChildKey ChildTable SELECT * FROM")私は、デバッガでチェック
をとしてMyTempParentTable 、およびMyTempParentT ableは、実際には、ParentTableのキーを含む1つの列テーブルです。私はIN句が有効な入力として1列のデータテーブルを取ることができると思った。どうやら、実行時に「1つ以上の必須パラメータに値が指定されていません」というエラーが表示されているようです。
私はちょっと考えられていません。すべての私のGoogleの検索はIN句のために思い付いた(value1、value2、value3 ...)のようなものであり、より複雑な式を含むIN句の例は示していません。 私は誰かが私が行方不明、またはこれを達成するための別の方法で私を手がかりにすることができますか?私は、IN節が動作するようにしようとしています。なぜなら、これを行うのが最も効率的な方法だと思っているからです...多分、そうではありません。