promotion image of download ymail app
Promoted

INSERT INTO 陳述式的語法錯誤 (jsp)幫忙一下

String JDriver = "sun.jdbc.odbc.JdbcOdbcDriver";

String connectDB="jdbc:odbc:book";

Class.forName(JDriver);

Connection con = DriverManager.getConnection(connectDB);

Statement stmt = con.createStatement();

request.setCharacterEncoding("big5");

String visit_no= request.getParameter("visit_no");

String visit_name = new String(request.getParameter("visit_name").getBytes("iso8859_1"),"big5");

String time = request.getParameter("time");

String dateroute = request.getParameter("d");

String month =request.getParameter("month");

String year =request.getParameter("year");

out.print(time);

* String sql="insert into Route (dateroute,visit_no,time,visit_name) *values ('"+dateroute+"','"+visit_no+"','"+time+"','"+visit_name+"')";

stmt.executeUpdate(sql);

stmt.close();

con.close();

他一直說我有INSERT INTO 陳述式的語法錯誤,在我打*地方

我的time傳的值是0,而且time欄位是設文字型態

奇怪在:

我原本是

String sql="insert into Route (dateroute,visit_no,visit_name) values ('"+dateroute+"','"+visit_no+"','"+visit_name+"')";

少了time,結果是沒問題的!

且如果只是讀取、刪除是沒問題的(有time)!唯獨新增不行?

可幫我嗎?

Update:

我找到問題了!!

time是保留字!!需換個欄位名稱!

感恩各位!!

2 Answers

Rating
  • 1 decade ago
    Favorite Answer

    那個ROUTE的表格,有沒有自動編號欄位?

    我的意思是說,有沒有欄位要儲存類似的編號,通常會設一個自動編號欄位來當索引值。

    你這情情況應該是索引值衝突。

    2009-08-17 13:03:54 補充:

    補充一下,若是沒有其他的欄位,我假設dateroute是索引值,不知 String dateroute = request.getParameter("d");中的"d",是怎樣取得的。

    反正,還是索引值(index key)衝突。

    2009-08-17 13:11:43 補充:

    原諒我前面廢話,欄位名稱time是關鍵字,用[time],試看看。

    Source(s): 成長很苦的IT
    • Commenter avatarLogin to reply the answers
  • 1 decade ago

    強烈懷疑你的time變數內容是零長度字串( "" )。

    且,Route.time欄位為not null。

    建議: 將sql字串內容印到網頁上看一看。你也可以po到這來,我來幫你看看。

    Source(s): me
    • Commenter avatarLogin to reply the answers
Still have questions? Get your answers by asking now.