0

我想将结果添加到结果集中并使用表来显示结果,这是我的 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);
        }

错误显示“未找到列 '一月'”。

很抱歉我没有获得足够的声誉,所以我将存储过程的结果写如下。

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');
        }
4

3 回答 3

0

确保为getDouble函数传递的字符串是 SQL 列的实际名称。例如,January似乎拼写不正确。

于 2012-04-17T10:38:17.137 回答
0

你跳过一月resultSet.next()没有?

也许做resultSet.hasNext()或等价,resultSet.next()在你的循环结束?

于 2012-04-17T10:44:50.667 回答
0

看起来没有名为 January 的列。是否有一个名为“Month”的列,其值为 Jan/Feb/etc?如果您可以发布表定义和查询,则故障排除会更容易。

于 2012-04-17T11:18:34.763 回答