2012-03-13 54 views
-1

我正在創建這個隨機數猜測遊戲,發現我需要存儲用戶的用戶名,時間和日期以及他的得分。隨機數猜測遊戲 - 玩家記錄

這是我寫的關於這個邏輯我試圖創建代碼:

這是連接代碼:使用

Connection cn=null; 
ResultSet rs=null; 
Statement stat=null; 
Statement statement=null; 

insert語句IM:

  int ok; 
      try 
      { 
       ok=statement.executeUpdate("INSERT INTO Table1(Player_name,Play_date, Player_score) VALUES("+'"'+username+","+datetime+","+scoretodb+'"'+")"); 
      }catch(SQLException bleh){} 

這裏是使用的連接功能:

public void setConnection() 
    { 
     try 
     { 
      try 
      { 
       Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
       cn=DriverManager.getConnection("jdbc:odbc:db1"); 
       stat=cn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE); 
       rs=stat.executeQuery("Select Player_name,Play_date,Player_score from Table1"); 
       rs.next(); 
      }catch(ClassNotFoundException cnfe){} 
     }catch(SQLException sqle){} 
    } 

我想在這裏做的邏輯是,在我寫新記錄插入我的數據庫包含以下字段的目的,取得了按鈕的每個按鈕點擊:

Player_name, Play_date, Play_score 

這顯然需要球員的用戶名,他出場的日期和時間以及他/她的得分。但是,當我執行上面提到的查詢(代碼),並點擊指定用於寫入新記錄的按鈕時,按鈕類型會粘貼到面板上(這顯然是一個錯誤的標誌,我仍然在想什麼它可能是這樣)並且數據庫沒有我輸入的值。順便說一下,我的數據庫已經連接到我的程序。和用戶名來自一個JTextField = txtuser,日期/時間來自於下面的代碼:

DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); 
    //get current date time with Date() 
    Date date = new Date(); 

和用戶的評分來自userscore =整數

我怎樣才能把它寫一個新的記錄到我的數據庫?用這個問題提供的代碼有可能嗎?

+1

你有錯誤?問題是什麼? – talnicolas 2012-03-13 17:28:02

+0

而你的問題是...? – 2012-03-13 17:28:06

+0

這是什麼問題? – ggrigery 2012-03-13 17:28:23

回答

2

那麼對於初學者,你不應該忽略的異常喜歡自己正在做:

 }catch(ClassNotFoundException cnfe){} 
    }catch(SQLException sqle){} 

嘗試是這樣的:

 }catch(ClassNotFoundException cnfe){ 
      cnfe.printStackTrace(); 
     } 
    }catch(SQLException sqle){ 
     sqle.printStackTrace(); 
    } 

這樣的軟件,至少有一個機會給你如果在try區塊中出現問題,請提供一些反饋意見。 (請注意,您的程序必須使用'java.exe'(而不是'javaw.exe')運行,以便您可以看到打印到控制檯的例外情況。)

此外,按鈕處於停滯狀態的事實表明按鈕操作處理程序代碼拋出異常。因此,在您的按鈕動作處理器寫一個try/catch塊:

 public void actionPerformed(java.awt.event.ActionEvent evt) { 
      try 
      { 
       // your code here 
      } 
      catch(Throwable t) 
      { 
       t.printStackTrace(); 
      } 
     } 

希望你應該能看到一個異常和堆棧跟蹤,這通常是向分離,是什麼問題的第一步。

+0

該時期的錯誤點數。什麼可能導致它? – cryzone 2012-03-13 18:00:35

+0

我不明白你的問題。如果您有堆棧跟蹤,請複製並粘貼它。 – 2012-03-13 18:03:06

+0

我有一個堆棧跟蹤。我試過了,因爲你建議它能夠捕捉到我的代碼帶來的錯誤。但t.printStackTrace();被誤認爲是我的意思,錯誤指向「t」後的時間段 – cryzone 2012-03-13 18:23:17