2012-04-17 4 views
0

Я хочу, чтобы добавить результаты в результирующем и использовать таблицу для отображения результатов это мой Java-кодКак добавить результат Resultset из MySQL хранимой процедуры в 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'); 
     } 
+0

это опечатка ваш код показывает Janunary, который я твердо верю, должен быть январь – Satya

+0

Я исправил его, но он также не может найти столбец. Колонна «Январь» не найдена. – MindHacks

ответ

0

Убедитесь, что строка вы передаете для функции getDouble фактические имена ваших столбцов SQL. Например, Janunary, похоже, не написано правильно.

+0

Обновление ......... – MindHacks

+0

Попробуйте удалить колонку в январе и посмотреть, будет ли она работать для остальных. Если он работает, в вашем январском столбце есть опечатка, либо в вашем коде, либо в имени столбца базы данных. –

+0

Если я удалю январь coloumn, он отобразит «Столбец» февраль «не найден». – MindHacks

0

вы пропускаете январь с resultSet.next() нет?

возможно, resultSet.hasNext() или equivelant и resultSet.next() в конце вашей петли?

+0

Если я перейду на hasNext(), он попросит меня перейти на следующую() или добавить приведение к набору результатов. И вы имеете в виду использование «do while»? – MindHacks

0

Похоже, что нет столбца с именем Январь. Есть ли столбец с именем «Месяц» со значением Jan/Feb/etc? Если вы могли бы опубликовать определение таблицы и запрос, устранение неполадок было бы проще.

+0

Что такое определение таблицы? Имена Coloumn? Также с января по декабрь. Код запроса, который я обновил. – MindHacks

+0

Названия столбцов были той частью, которую мне было любопытно. Если они с января по декабрь, это скорее всего орфографическая ошибка между именами столбцов в именах БД и столбцов в Java. Помните, что они чувствительны к регистру. Кроме того, вы можете переключиться на rs.getDouble (1), rs.getDouble (2) ... если ваш запрос возвращает их в желаемом порядке. –

Смежные вопросы