■90308 / inTopicNo.3) |
Re[2]: TableAdapterで取得したDataTable |
□投稿者/ 富士山 (2回)-(2019/02/25(Mon) 15:45:25)
|
■No90254 (WebSurfer さん) に返信 > ■No90252 (富士山 さん) に返信 > >>DataTableの中身を確認してみると、Name,Address,Age,IDの全てのフィールドがDataTableにセットされています。 > > 最初に Name, Address, Age, ID 全フィールド取得のための Fill,GetData() を作り、それに以下の記事の「D. テ > ーブルアダプタへのクエリ追加」のセクションに書いてあるように条件付クエリ追加したということですか? > > 7.6 データコンポーネント機能によるデータアクセスコンポーネントの開発 > https://www.atmarkit.co.jp/fdotnet/bookpreview/vs2005webapp_07/vs2005webapp_07_03.html > > で、質問者さんの場合は select Name,Age from T where age = 20; と Address, ID がないクエリをベース > に GetDataX を作成したのですよね。 > > Visual Studio が自動生成した TableAdapter の GetDataX のコードを見てください。 > > たぶん、TableAdapter の SELECT クエリを select Name,Age from T where age = 20 に差し替えて、Name, > Address, Age, ID 全フィールドを格納する型付 DataTable に、 > > this.Adapter.Fill(dataTable); > > ・・・というように Fill して、Fill した dataTable を返すようになっていると思います。 > > それで例外がスローされなかったのは何故か分かりませんが、とにかく元の Fill,GetData() を作ったとき > に設定したフィールドと異なるのは NG です。 > > (自分の SQL Server 利用の環境では ConstraintException がスローされ、"制約を有効にできませんでした。 > 行に入力できるのは、Null 以外の値、一意な値、あるいは外部キーですが、この制約の違反が 1 つ以上の行 > で発生しています。" というエラーメッセージが出ます) > > GetDataX のクエリも全フィールド取得するようにしてください。 > > >
|
解決済み
|