- PR -

クエリで追加した列もDataTableに取込むには ?

1
投稿者投稿内容
だんじり
大ベテラン
会議室デビュー日: 2007/08/10
投稿数: 155
お住まい・勤務地: 神奈川県
投稿日時: 2007-10-15 08:53
Visual Basic 2005 Exprese Edition でWindowsアプリケーションを開発しています。

件名の通り、クエリで追加した計算列(フィールド)を含めてDataTableに取込む方法を
教えれいただきたく、次の通り状況と質問内容に分けて説明いたします。

【状況】
addressTabuleを元にしたDataTable(address)を作成した後で、addressTableAdapterの
Fill.GetData()クエリ以外にクエリを追加しました。追加したクエリは誕生日フィールドから年齢を算出した齢フィールドを新設してFillBy歳 と名づけました。
データセットデザイナでFillBy歳クエリの「データーのプレビュー」を見ても、結果は齢フィールドを含め正常に表示されます。

【質問内容】このクエリを使って下の通りaddressDataTableにデータを読み込みました
が、DataTableには,もともと齢フィールドがなく新設した齢フィールドは読込めません。
→ Me.addressTableAdapter.FillBy歳 (Me.abcDataSet.address)
齢フィールドを含めてDataGridViewにバインドして表示させたいのですが、新規追加したフィールドを含めてDataTableに読込むにはどうすればよいのでしょうか。
以上よろしくご指導下さい。
常連さん
会議室デビュー日: 2004/10/27
投稿数: 21
投稿日時: 2007-10-15 10:17
Me.addressTableAdapter.FillBy歳 (Me.abcDataSet.address)
この引数になっている「address」テーブルにちゃんと「齢フィールド」が存在していますか?
だんじり
大ベテラン
会議室デビュー日: 2007/08/10
投稿数: 155
お住まい・勤務地: 神奈川県
投稿日時: 2007-10-15 11:18
怜さん、解答ありがとうございます。
引用:

怜さんの書き込み (2007-10-15 10:17) より:
「address」テーブルにちゃんと「齢フィールド」が存在していますか?


addressTabuleを元にDataTable(address)を作成した後で、追加クエリ時に「齢フィールド」を作成しましたので、データベースにもデータテーブルにも存在しません。
常連さん
会議室デビュー日: 2004/10/27
投稿数: 21
投稿日時: 2007-10-15 14:57
DataAdapterを使っているとプロパティの設定によってはデータテーブルに無くて
クエリにのみ存在するフィールドは無視したりすることができるんで、ひょっとして
その絡みかと思ったんですが、今回はTableAdapterだったんですね。
私は使ったこと無かったので試しにだんじりさんと同じようなことをやってみました。
結果はDataTable側には自動でフィールドが追加されていました。
でもだんじりさんの方ではFillBy歳を実行した後のDataTableには歳フィールドが
追加されていないから困っているんですよね?
だんじり
大ベテラン
会議室デビュー日: 2007/08/10
投稿数: 155
お住まい・勤務地: 神奈川県
投稿日時: 2007-10-15 15:24
怜さん、テストまでしていただいて申し訳ありません。

引用:

怜さんの書き込み (2007-10-15 14:57) より:
今回はTableAdapterだったんですね。
私は使ったこと無かったので試しにだんじりさんと同じようなことをやってみました。
結果はDataTable側には自動でフィールドが追加されていました。



やはりFillBy歳を実行することで自動的にDataTable側に歳フィールドが作られるのですか。
私の作成中ソフトは、DataTable側に歳フィールドが作られることもなく当然DataTable
側では歳フィールドのデータは取得できません。今回はデータベース側に無用な空の
歳フィールドを作成し、データソースウインドウの上部にあります「ウイザードで
データセットを更新」ボタンでDataTable側にも歳フィールドを追加して対応しました。

私のほうの設定に何かがもれているものと思いますが、もう少し検討してみます。
怜さんにはお手数をおかけして申し訳ありません。この後は自分で検討します。
1

スキルアップ/キャリアアップ(JOB@IT)