- - PR -
OleDbDataAdapterを使用してAccessMDBのデータをDataSetに作成
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-10-25 13:12
OleDbDataAdapterを使用してAccess MDBのデータをDataSet作成しています。
以下のSelect文を使用してAccess MDBのデータを取得しているのですが、 FROM句で構文エラーが発生してしまいます。 似たようなSelect文では、正常に動作しているのですが、 ご教授お願いします。 From句でエラーになるelect文 Command_string = "select a.LogicalEntityName from entity a" + " inner join (select EntityId from column where ColumnId = 1) b " + " on a.EntityId = b.EntityId;"; 正常に動作するSelect文 Command_string = "select a.LogicalEntityName from entity a" + " inner join (select EntityId from control where Mark = '1') b " + " on a.EntityId = b.EntityId;"; 以下コード ↓↓↓↓↓↓↓↓↓↓↓ string sDbFile = "C:\\テスト.mdb"; Conn_MDB.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data source= " + DbFile + ";"; System.Data.OleDb.OleDbDataAdapter Data_Adapter; DataSet DataSet = new DataSet("TEST"); Data_Adapter = new System.Data.OleDb.OleDbDataAdapter(Command_string, Conn_MDB); Data_Adapter.Fill(DataSet, "TEST");←ここでエラーとなる | ||||||||
|
投稿日時: 2007-10-25 13:29
SQL コマンドに MDB の予約語が含まれていませんか? 何にしても、例外の詳細を書いた方が良いと思います。 それと、SQL コマンドはパラメータ クエリを使って組み立ててください。 ひょっとすると今回はわかりやすくするためにすべて文字列にして頂いたのかもしれませんが、それなら逐語的リテラルを使用することをお勧めします。 文字列結合がない方が見やすいですから。
こんな感じで書くことができます。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2007-10-25 14:18
じゃんぬねっとさん
返信ありがとうございます。予約語を調査したところ Column は予約語になっていました・・・・ 予約語は変数などに使用できないのですね!? あと、SQLコマンドにそのような書き方があったのですね・・・ 大変勉強になりました。 当方、まだC#を始めて1ヶ月もたっていませんのでまだまだ勉強中の身なのです。 本当にありがとうございました | ||||||||
|
投稿日時: 2007-10-25 14:18
じゃんぬねっとさん
返信ありがとうございます。予約語を調査したところ Column は予約語になっていました・・・・ 予約語は変数などに使用できないのですね!? あと、SQLコマンドにそのような書き方があったのですね・・・ 大変勉強になりました。 当方、まだC#を始めて1ヶ月もたっていませんのでまだまだ勉強中の身なのです。 本当にありがとうございました | ||||||||
|
投稿日時: 2007-10-25 14:18
じゃんぬねっとさん
返信ありがとうございます。予約語を調査したところ Column は予約語になっていました・・・・ 予約語は変数などに使用できないのですね!? あと、SQLコマンドにそのような書き方があったのですね・・・ 大変勉強になりました。 当方、まだC#を始めて1ヶ月もたっていませんのでまだまだ勉強中の身なのです。 本当にありがとうございました |
1