
VisualStugio.Net2003でソースコードを記述しており、コード内でSQLのSELECT文を実行して、実行結果をDataTableに格納する処理をしています。
今回、とあるテーブルに対し2パターンのSQLを実行し、それぞれの実行結果を1つのDataTableに格納したいのですが、どのようにすれば良いでしょうか?
自分で調べたところ、先に実行したSQL結果に、後から実行したSQL結果を1行ずつ追加するといった方法は見つかりましたが、1行ずつではなく、一括で追加する方法が知りたいです。
前提として、2回のSQL実行では、同じテーブルの同じ項目をSELECTしております。
下記に簡単ですがコード記述の概要を補足しておきます。
・コード記述概要
【変数宣言】
Dim DB1 As DataTable
Dim DB2 As DataTable
【SQL文1】
SELECT A,B,C FROM テーブル1 WHERE 条件文1
DB1 = SQL文1の実行結果
【SQL文2】
SELECT A,B,C FROM テーブル1 WHERE 条件文2
DB2 = SQL文2の実行結果
【DB1にDB2のデータを追加】←ここのやり方を知りたいです
DB1 = DB1 + DB2
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
ご回答ありがとうございました。
ご紹介頂いたMergeメソッドを試そうと思ったのですが、当方で参照設定していた.NET FRAMEWORKのバージョンが1.1ということがわかり、このバージョンではDatatable.Mergeが使えないようでした。(まさかそんな旧バージョンとは思っていませんでした・・・)
1.1でもDataset.Mergeは使えるようでしたが、かなり複雑なコードになりそうでしたので、今回はMergeメソッドの利用は諦め、SQL文でUNION結合する対応をとることにしました。
ただ、もっとバージョンが新しい.NET FRAMEWORKを利用しているプログラムも別にありますので、そこでDatatableの追加が必要な際には、ぜひMergeメソッドを利用させて貰いたいです。
ありがとうございました。
No.2
- 回答日時:
こんにちは
もしご質問の内容が、詳細を知られたくなくて簡略化したものでなければ
【SQL文1】
SELECT A,B,C FROM テーブル1 WHERE 条件文1
DB1 = SQL文1の実行結果
【SQL文2】
SELECT A,B,C FROM テーブル1 WHERE 条件文2
DB2 = SQL文2の実行結果
をまとめて、
【SQL文1】
SELECT A,B,C FROM テーブル1 WHERE 条件文1 OR 条件文2
DB1 = SQL文1の実行結果
とすれば、どちらかの条件に当てはまるものを一括で取り出せます。
ご回答ありがとうございました。
記述頂いているように、本来はSQL文1回で全部持ってくるのが一番なんですよね・・・。
今回の場合、SQL文1とSQL文2それぞれが複数のテーブルと結合しており(すみません、結合については説明をわかりやすくする為省力しておりました)、1つのSQL文にするとかなり長い記述になり、後から見た時に何をしているのかわかりづらくなることを危惧しておりました。
また、フォーム画面にラジオボタンを設置しており、ボタンAをチェックした場合はSQL文1、ボタンBをチェックした場合はSQL文2、ボタンCをチェックした場合は、SQL文1+SQL文2の結果を返す仕組みにしたかった為、あえてSQL文をわけてDatatableに格納する方策を取っておりました。
とはいえ、やはりSQL一発で結果を持ってくる方が良いと思い直しましたので、今回はUNION結合で対応したいと思います。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- PHP PHP MySql ページング 2 2022/09/20 06:38
- Visual Basic(VBA) データベースから絞り込んでデータを読み込み 1 2023/02/21 19:51
- MySQL SQLです。こんな感じですか?あってますか? うまくいきません教えてくださいお願いします 1 2023/07/08 15:27
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Oracle 質問です。 下記のテーブルとデータがあり、 取得想定結果のように出力したいです。 下記のsqlだと0 2 2023/05/23 19:10
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- Access(アクセス) Access VBAで条件を追加する(書き込む)場所 2 2022/03/23 12:05
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- MySQL うまくいきません教えてくださいお願いしますSQLです。クエリ構文です。 1 2023/07/07 12:39
このQ&Aを見た人はこんなQ&Aも見ています
-
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
VB.NET Excelを読み込んでDataTableに格納し、DBにデータをINSERTする
Microsoft ASP
-
DataTableに入っているデータを全てinsertしたい!(C#)
Microsoft ASP
-
-
4
DBから取得した値を配列へ代入する
Visual Basic(VBA)
-
5
.NET SqlDataReader のレコード有無判定
Visual Basic(VBA)
-
6
CloseとDisposeの違い
Visual Basic(VBA)
-
7
VB.NET getとsetの概念がわかりません。
Visual Basic(VBA)
-
8
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
9
DataGridViewの、選択されている行を取り出したい
Visual Basic(VBA)
-
10
Functionの戻り値を配列にしたいのですが
Visual Basic(VBA)
-
11
データセットのレコード更新がしたい
Visual Basic(VBA)
-
12
FORMが開いているかどうかの確認方法
Visual Basic(VBA)
-
13
.NET上でエクセル上に罫線を引く
Visual Basic(VBA)
-
14
csvファイル 項目数取得
Visual Basic(VBA)
-
15
DataGridViewの昇順降順。
Visual Basic(VBA)
-
16
VB.NETでフォーム上にExcelのような表を表示する方法
Visual Basic(VBA)
-
17
VB.NET開発。ラジオボタンとコントロールの制御について教えてください
Visual Basic(VBA)
-
18
VB.NETでコンボボックスの1行目を空白にしたい
Visual Basic(VBA)
-
19
Functionで戻り値を複数返す方法
Visual Basic(VBA)
-
20
1テーブル&複数レコードの更新に対して1度のupdate文での処理方法
SQL Server
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
パソコンに何かが勝手にダウン...
-
パソコンのスクリーンセーバー...
-
Excel実行時エラー-2146959355?
-
eclipseで、「ポート番号が使用...
-
プロパティの値が不正ですって...
-
VBA コントロールパネルの機能...
-
管理者として実行を毎回すると...
-
latexでのエラー
-
エクセルVBA、ステップモードと...
-
「管理者として実行」された場...
-
【HTML】INPUTの値を引数にBAT起動
-
COBOLで集団項目から符号...
-
EXCEL-VBAでコマンド...
-
VB.NETでDataTableにデータ追加...
-
Windows10 で青鬼を遊びたいの...
-
実行中のVBSをタスクバーに非表...
-
動的ライブラリ中のグローバル変数
-
ポケコンPC-G850Vのエラー
-
ターミナルからemacsへのコピペ...
-
VBA中断モードの解除
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
パソコンに何かが勝手にダウン...
-
Excel実行時エラー-2146959355?
-
VB.NETでボタンのクリックイベ...
-
パソコンのスクリーンセーバー...
-
エクセルVBA、ステップモードと...
-
PC版のMinecraftが応答なしにな...
-
管理者として実行を毎回すると...
-
eclipseで、「ポート番号が使用...
-
VB.NETでDataTableにデータ追加...
-
EXCEL-VBAでコマンド...
-
プログラム実行中に強制停止さ...
-
プログラミングについてです。...
-
pythonで他のアプリを操作する...
-
ATOMは何の略ですか
-
起動したアプリケーションを最...
-
VSコード
-
「管理者として実行」された場...
-
プロパティの値が不正ですって...
-
COBOLで集団項目から符号...
-
Windows10 で青鬼を遊びたいの...
おすすめ情報