2013-11-25 34 views
-2

下面是代碼是我寫的代碼,當我通過鼠標單擊或按下按鍵選擇我的j表上的行時,可以獲得'monthly Depreciation'的值。但是當我點擊行或按鍵時,它只會選擇'每月折舊'的第一個值。我知道的問題來自where語句,但似乎無法解決它。在Java中使用Mysql寫下多個條款

if(evt.getKeyCode()==KeyEvent.VK_DOWN || evt.getKeyCode()==KeyEvent.VK_UP) 
     { 
      try{ 
      int row =dep_report.getSelectedRow(); 
      String Table_click=(dep_report.getModel().getValueAt(row, 0).toString()); 
      String sql ="select Date_Acquired 'Date Acquired',Serial_Number 'Serial Number'," 
       + " Description 'Description',Cost_Of_Acquisition 'Cost Of Acquisition'," 
       + "Monthly_Depreciation 'Monthly Depreciation',Accumulated_Depreciation 'Accumulated      Depreciation',Net_Book_Value 'Net Book Value'" 
       + ",asset_update.Branch_Area 'Branch Area',Depts_name 'Department Name' ,User 'User'," 
       + "Status 'Status' from items,asset_update where items.items_No = asset_update.items_No &&'"+Table_click+"'"; 
      pst = conn.prepareStatement(sql); 
      rs = pst.executeQuery(); 
      if(rs.next()){ 
       String add1 = rs.getString("Monthly Depreciation"); 
       MonthlyDep.setText(add1); 
      } 
     } 
     catch(Exception e) 
     { 
     JOptionPane.showMessageDialog(null, e);  
     } 

我真的很感謝幫助,謝謝。

+1

您可以格式化您的代碼嗎? –

回答

0

在SQL

where items.items_No = asset_update.items_No &&'"+Table_click+"'"; 

& &爲SQL不會工作,你可能需要

where items.items_No = asset_update.items_No and items.someThing= '"+Table_click+"'"; 
0

請使用Java命名約定,並給予適當的名字的事情Table_click是一個可怕的變量名。

但是,您能描述一下選定行的第一列中表格模型中的內容嗎?

您似乎將其追加到您的查詢中,如果它不包含有效的SQL部分,這將不適用於您的語句。在where子句中,您通常會根據值檢查列。我懷疑你的表格模型是否有寫在這裏的表格模型,更有可能你在這個表格模型中有這個值。

還請確保正確使用預準備語句。切勿將值直接放入您創建的SQL字符串中,或​​者創建SQL注入的完美入口點。一旦你創建瞭如下所示的語句,請指定值:pst.setString(1, Table_click);