2014-09-20 2 views
-1
int v1 = Integer.parseInt(lbl_READING_NUMBER.getText()); 
    int n = Integer.parseInt(jLabel_CUBIC_METER.getText()); 

    int x = 0; 
    double point = .11; 
    double ans = 0; 

    if(n<10){ 

      for(n=0;x<4;x++){ 
       ans = x*point*100; 
      } 
     } 

    try{ 
     if(n<10){ 
      for(n=0;x<4;x++){ 
       ans = x*point*100; 
      } 
     } 

     String sql ="UPDATE reading set Amount=? where Reading_Number=?"; 
     ps = conn.prepareStatement(sql); 
     ps.setDouble(1, ans); 
     ps.setInt(2, v1); 

     rs =ps.executeUpdate(); //This line gives me error saying: 
      "Incompatible types: int cannot be converted to ResultSet" 

    }catch(Exception e){ 
     JOptionPane.showMessageDialog(null, e); 
    } 

Я хочу знать, в чем причина этой ошибки и как я ее исправлю. Кроме того, этот код мой расчет кубометра в моей системе вексельной водыКак бороться с Несовместимыми типами: int не может быть преобразован в ResultSet

+0

поближе посмотреть на ваши 'for' петель. Я даже не пытаюсь догадаться, что они намерены делать: как написано, они не имеют никакого смысла. – Dirk

ответ

1

Сообщения об ошибке является хорошим индикатором проблемы — executeUpdate возвращает целочисленное значение, а не ResultSet

int rows = ps.executeUpdate(); 
+0

как я могу реализовать это для моего кода sir, этой строки int. уточните, пожалуйста, сэр. –

+0

Это в значительной степени. Почему, по-вашему, вам нужен «ResultSet»? – Reimeus

+0

простите меня за вопрос sir, потому что im new для netbeans, я просто хочу знать, куда вставить эти строки int в мой код выше, потому что это executeUpdate. –

1

executeUpdate возвращает целочисленное значение что означает, сколько строк было обновлено. Используйте executeQuery для получения ResultSet.

Образец

ps.executeUpdate(); // This will update the database and return the number of rows which were affected. 
rs = ps.executeQuery("SELECT * etc..."); // This you use when you want to retrieve a ResultSet 

Source

+0

Я уже использую executeQuery, но он дает мне исключение sql, говорящее: не может выдавать инструкции обработки данных с помощью executeQuery(). –

+0

'exceuteQuery' предназначен только для операторов SELECT, а' executeUpdate' предназначен для операторов обработки данных, таких как UPDATE, INSERT и DELETE. Итак, сначала используйте 'executeUpdate', затем используйте' executeQuery', чтобы восстановить ResultSet. Безопасность ;) – Graknol

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