2017-03-09 33 views
-5

我想顯示文本字段中的金額總和,但是從數據庫中讀取金額。在這裏我試過這段代碼,但是隻有0.0顯示在文本字段中...... Dint獲取實際金額。在java中提取數據庫中的值的總和

{ 公共無效的actionPerformed(ActionEvent的爲arg0){

  try 
      { 
       String t= (String)client.getSelectedItem(); //client = JCombobox 
       String query1="select sum(Amount) as total from enquiry where client= ?"; 
       PreparedStatement p=conn.prepareStatement(query1); 
       p.setString(1,tfsum.getText()); //tfsum = textfield whr sum will displays 
       ResultSet r=p.executeQuery(); 

       if(r.next()) 
       { 

        String s=r.getString("sum"); 

        tfsum.setText(s); 

       } 
       r.close(); 
       p.close(); 

      } 
      catch(Exception d) 
      { 
       d.printStackTrace(); 
      } 



     } 
    }); 
+0

'total(Amount)'是無效的SQL。嘗試'總和(金額)'。並使用您的調試器和堆棧跟蹤;他們在那裏是有原因的。 – shmosel

+0

嘗試'查詢字符串查詢1 =「選擇總和(金額)從查詢哪裏客戶=?」;'我認爲back-ticks也不需要太 –

+0

@ScaryWombat他們不傷害。也許OP選擇使用它們是因爲'CLIENT'是MySQL中的一個關鍵字(儘管不是保留的)。 – shmosel

回答

0

使用sum而不是total。因爲總數不是有效的聚合函數。

還從查詢中刪除反引號。沒有必要將列名放入反引號/引號中。試試這個

String query1="select sum(Amount) from enquiry where client= ?"; 
+1

那些不是引號,它們是反引號。有些人喜歡用反引號將列名和表名附上。 – shmosel

+0

我從來沒有在SQL中嘗試反引號。我會嘗試他們,並感謝新的信息.. – Maverick

+0

我試過沒有反引號,但沒有工作... String query1 =「select sum(Amount)from inquiry where client =?」; –