2012-04-17 51 views
0

我想要的結果添加到結果集,並使用表中顯示的結果,結果集一個MySQL存儲過程的 這是我的Java代碼如何添加結果在java中

while (resultSet.next()) { 

      Object[] objects = { 
        resultSet.getDouble("January"), 
        resultSet.getDouble("February"), 
        resultSet.getDouble("March"), 
        resultSet.getDouble("April"), 
        resultSet.getDouble("May"), 
        resultSet.getDouble("June"), 
        resultSet.getDouble("July"), 
        resultSet.getDouble("August"), 
        resultSet.getDouble("September"), 
        resultSet.getDouble("October"), 
        resultSet.getDouble("November"), 
        resultSet.getDouble("December"), 
        }; 
      model.addRow(objects); 
     } 

錯誤顯示「列Janunary'找不到。「

對不起,我沒有獲得足夠的聲譽,所以我寫存儲過程的結果如下。

categoryid January February.... 

1  3000  5000  (double).... 

查詢代碼:

CallableStatement callableStatement = connection.prepareCall(sql); 
     if (cobAccount.getSelectedIndex() != 0) { 
      String accountid = cobAccount.getSelectedItem().toString() 
        .substring(0, 1); 
      callableStatement.setString(1, accountid); 
     } else { 
      callableStatement.setString(1, "0"); 
     } 
     if (cobYear.getSelectedIndex() != 0) { 
      String year = cobYear.getSelectedItem().toString(); 
      callableStatement.setString(2, year); 
     } else { 
      callableStatement.setString(2, "0"); 
     } 
     if (cobMember.getSelectedIndex() != 0) { 
      String memberid = cobMember.getSelectedItem().toString() 
        .substring(0, 1); 
      callableStatement.setString(3, memberid); 
     } else { 
      callableStatement.setString(3, "0"); 
     } 
     if (!"".equals(txtMinmoney.getText())) { 
      double minMoney = Double.valueOf(txtMaxmoney.getText()); 
      callableStatement.setDouble(4, minMoney); 
     } else { 
      callableStatement.setDouble(4, '0'); 
     } 
     if (!"".equals(txtMaxmoney.getText())) { 
      double maxMoney = Double.valueOf(txtMaxmoney.getText()); 
      callableStatement.setDouble(5, maxMoney); 
     } else { 
      callableStatement.setDouble(5, '0'); 
     } 
+0

它是一個錯字你的代碼顯示Janunary,我堅信應該是1月 – Satya 2012-04-17 10:35:15

+0

我糾正了它,但它也找不到column.Column'January'找不到。 – MindHacks 2012-04-17 10:39:31

回答

0

確保傳入的getDouble函數的字符串是你的SQL列的實際名稱。例如,Janunary似乎拼寫不正確。

+0

更新......... – MindHacks 2012-04-17 10:40:32

+0

嘗試刪除1月份專欄,看看它是否適用於其餘部分。如果它有效,那麼在你的代碼中,無論是在數據庫列名中,你的1月列都有一個錯字。 – 2012-04-17 10:42:18

+0

如果我刪除了一月份的顏色,它會顯示「未找到二月份的列」。 – MindHacks 2012-04-17 12:45:38

0

您跳過1月份與您的resultSet.next()否?

可能是resultSet.hasNext()或equivelant和resultSet.next()在循環結束?

+0

如果我更改爲hasNext(),它會要求我切換到next()或將結果添加到結果集。你的意思是使用「do while」? – MindHacks 2012-04-17 12:50:36

0

看起來好像沒有名爲January的列。是否有名爲「Month」的值爲Jan/Feb/etc的列?如果您可以發佈表格定義和查詢,則疑難解答將更容易。

+0

關於表格的定義是什麼?coloumn名稱?它也是從1月到12月。我更新了查詢代碼。 – MindHacks 2012-04-17 12:43:04

+0

列名是我很好奇的部分。如果他們是從1月到12月,這很可能是DB中的列名和Java中的列名之間的拼寫錯誤。請記住它們區分大小寫。此外,您可以切換到rs.getDouble(1),rs.getDouble(2)...如果您的查詢以所需的順序返回它們。 – 2012-04-17 13:42:10

相關問題