重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

テーブル名:項目名
海:気温、水温、大きさ(0:大きい、1:小さい)
教科書:科目、値段

上記のようなテーブルがあり、以下のようなSelect文によりデータを
データセットに取得したいのですが、
コンパイルは通り、実行するとFillメソッドでエラーになります。
try~catchをしてエラーの内容を見てみると「FROM句の構文エラー」と出ています。
Fillメソッドの2つめのパラメータにどちらのテーブル名を入れても、
同じエラーになります。
複数のSelect文をAdapterに設定した場合、
2つ目のパラメータは一体なんなのでしょうか。
Adapterを2つに分ける方法ではなくこの方法でどうすればいいのか、
教えてください。よろしくお願いいたします。
初心者ですので、簡単に教えていただけるとありがたいです。
--------------------------------------------------Dim oleCn As OleDb.OleDbConnection = New OleDb.OleDbConnection
Dim dataSet = New DataSet
oleCn.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0;"~

Dim oDataAdapter As New OleDb.OleDbDataAdapter("SELECT 科目 FROM 教科書" + _
"SELECT 水温 FROM 海 WHERE (大きさ = 0)", oleCn)

oDataAdapter.Fill(dataSet)

A 回答 (5件)

おっと。


.NET Tipsにありましたか。
Select文の間にセミコロンを入れると複数テーブルの取得は出来るのですね。
テーブルをマップする方法も書いてあります。
    • good
    • 0
この回答へのお礼

ありがとうございます。
今回はC#ではなく、VBですので、
;を入力しても駄目でした。
C#では出来てVBでは出来ないような処理なのかもしれませんね。
(そんなことがあるのかどうかもわからないですが・・・)

お礼日時:2005/04/22 14:01

まず、2テーブルへのSQL。



OleDb.OleDbDataAdapter
できません。

System.Data.SqlClient.SqlConnection
できます。(やってみました)
あげられたTipsのHPがCで書かれているため「;」についての議論がされてますが、文末以外に2SQLの区切りにもあります。
VB.NETでも有効です。

参考URLを見たらわかりますが、Accessを利用しているのであれば、そもそもが違うのであきらめましょう。

Fillについては、もう一個質問があがっているのでそっちで答えます。

参考URL:http://www.atmarkit.co.jp/fdotnet/basics/adonet0 …
    • good
    • 0

>今回はC#ではなく、VBですので、


>;を入力しても駄目でした。

SQLコマンドのSELECT文を区切る“;”は必要です。
そうしないと不正なSQLコマンドになり、「FROM句の構文エラー」となります。
C#のステートメントの“;”と勘違いしてませんか?

#3が言うように、使用しているDBが複数結果セットを返せないのかも知れませんが。
    • good
    • 0
この回答へのお礼

ありがとうございます。
・・・。
C#の“;”と勘違いしていました。
確かにSGL文の中に“;”があっても、C#とは関係ないですね・・・。
またまた勉強になりました。

お礼日時:2005/04/25 10:05

@ITのサンプルはSQL Server 2000やMSDEを使ったものです。


データベースの違いによるものなのかもしれないですね。
    • good
    • 0
この回答へのお礼

ありがとうございます。
なるほど、そうですか。
プログラム経験が浅いのでちょっと違うだけで混乱してしまいます。
もっと勉強していきたいと思います。

お礼日時:2005/04/25 09:56

エラーメッセージをよく見て、何で怒られているのかを考える/調べること。



>「FROM句の構文エラー」

どう見ても第2パラメータの問題には見えません。

で、やりたいことはSELECT文を二つ同時に発行して、DataSetにDataTableを二つ受け取る
ことでしょうか?
無理だと思います。
    • good
    • 0
この回答へのお礼

ありがとうございます。
やりたいことはその通りです。
やはり無理なのでしょうか。
http://www.atmarkit.co.jp/fdotnet/dotnettips/137 …
を見て出来るのではないかと考えていたのですが・・・。

お礼日時:2005/04/22 13:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!