2013-12-12 38 views
0

這是我在這個偉大的站點的第一個問題:D將數據從Java插入到使用jdbc的Access中

我有一個訪問數據庫。在這個數據庫中有一個表格,一列有4個團隊。 這些球隊有積分,我想分清前兩名得分最多的球隊。 最後在另一個表中插入這兩個團隊。

我可以在沒有任何問題的情況下取得這兩支球隊。 但如果我嘗試將它們插入到另一個表,它顯示了一個錯誤: 「值java.sql.SQLException:無效的遊標類型:1003」

public void Viertelfinale() 
    { 
     final String [] temp = new String[20]; 

     int i=0; 

     try { 
      st = con.createStatement(); 
      String sql = "SELECT * FROM tbl_Spielplan ORDER BY A_Punkte DESC"; 
      rs = st.executeQuery(sql); 

      while (rs.next()){ 
       temp[i] = rs.getString("A_Teams"); 
       i++; 
      } 

      rs.close(); 
      st.close(); 
      int j=0; 
      st = con.createStatement(); 
      String sql1 = "SELECT * FROM tbl_Viertelfinale"; 
      rs = st.executeQuery(sql1); 

      rs.next(); 
      rs.moveToInsertRow(); 
      rs.updateString("A_Teams", temp[0]); 
      rs.insertRow(); 

      rs.next(); 
      rs.moveToInsertRow(); 
      rs.updateString("A_Teams", temp[1]); 
      rs.insertRow(); 


     } catch (SQLException e) { 
      e.printStackTrace(); 
     } 
    } 

對不起,我的英語:/

錯誤:

java.sql.SQLException: Invalid Cursor Type: 1003 
    at sun.jdbc.odbc.JdbcOdbcResultSet.moveToInsertRow(JdbcOdbcResultSet.java:4306) 
    at Turnier.Schultunier.Viertelfinale(Schultunier.java:49) 
    at Turnier.Viertelfinale.<init>(Viertelfinale.java:94) 
    at Turnier.Viertelfinale$1.run(Viertelfinale.java:35) 
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251) 
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733) 
    at java.awt.EventQueue.access$200(EventQueue.java:103) 
    at java.awt.EventQueue$3.run(EventQueue.java:694) 
    at java.awt.EventQueue$3.run(EventQueue.java:692) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) 
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:703) 
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242) 
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161) 
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150) 
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) 
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138) 
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:91) 
+0

嘗試使用if語句測試後面的'rs.next();'。 –

+0

你是什麼意思? – seriously

+0

PLease添加你得到的整個堆棧跟蹤。同樣指向我們。 – Smit

回答

1

我敢肯定,Access不支持SELECT FOR UPDATE這似乎是你正在嘗試使用。相反,只需使用簡單的UPDATE語句(除了您的SELECT查詢外)。

+0

這應該是什麼樣子,因爲我必須用'temp [0]'來更新表,並且我不能將它寫入更新語句中? – seriously

相關問題