ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと

OleDbCommand com;
string cnst = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=WiTiTa.mdb";
string Query;
OleDbConnection cn = new OleDbConnection(cnst);
Query = "CREATE TABLE TiTa (";
Query = Query + "ID CURRENCY,";
Query = Query + "TITLE TEXT,";
Query = Query + "HOUR TEXT,";
Query = Query + "LOOP_S TEXT,";
Query = Query + "LOOP_E TEXT,";
Query = Query + "LOOP_C TEXT,";
Query = Query + "LOOP_SLEEP TEXT,";
Query = Query + "SLEEP_H TEXT,";
Query = Query + "SLEEP_M TEXT,";
Query = Query + "SLEEP_B TEXT,";
Query = Query + "WAKEUP_H TEXT,";
Query = Query + "WAKEUP_M TEXT,";
Query = Query + "WAKEUP_B TEXT ";
Query = Query + ")";
cn.Open();
com = new OleDbCommand(Query, cn);
com.ExecuteNonQuery(); //エラー発生
cn.Close();

エラー内容 「フィールド定義の構文エラーです。」
クエリをmdbファイルで直接実行した場合にはエラーは発生しません。
mdbのセキュリティーもACCESS本体の画面から落としてみましたが効果がありません。
なにとぞエラー回避方法を教えてください。SELECT文は実行可能です。

A 回答 (4件)

「HOUR」が予約語じゃないかな?

この回答への補足

そうです。ベストアンサー候補です。さっそく試してみます。
回答ありがとうございます。

補足日時:2012/08/30 00:33
    • good
    • 0
この回答へのお礼

ご回答のおかげで解決しました。有難うございました。

お礼日時:2012/08/30 13:39

(1)


エラーメッセージで検索する
http://www.google.com/search?q=Jet+error+3292

文法的に怒られている?

(2)
短いSQLを試して、追加していく。

Query = "CREATE TABLE TiTa (ID CURRENCY)"

IDは予約語かな?
    • good
    • 0

"WAKEUP_B TEXT "の最後のスペースを消してみるとどうでしょう?


SQL的には関係ない気がしますが、VS系でそんなエラーが出ると聞いたことがあったような・・・?

この回答への補足

ご回答いただき有難うございます。
実行してみましたが同じエラーが発生します。

補足日時:2012/08/28 18:40
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

お礼日時:2012/08/28 19:35

違うかもしれませんが。

Queryの最後に ; が足りないような…?

Query = Query + ")";

 を

Query = Query + ");";

にしたらどうなります?


ちなみに、関係ないですが、テーブルのID列を通貨型にするって相当斬新な気がします。通貨型の値ってことは物の値段なわけで当然重複がありますから、カラムのIDにはなり得ませんよねぇ。まぁ、構文上は通ると思いますけど、何のテーブルなんだろうと考えてしまいました。(笑)

この回答への補足

回答ありがとうございます。実行してみましたが、エラーの発生止まずです。

補足日時:2012/08/28 18:38
    • good
    • 0
この回答へのお礼

回答ありがとうございます。最後に「;」を付けるのはオラクルっぽいですね。(^^)

お礼日時:2012/08/28 19:34

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