Illegal operation on empty result set

Ich versuche zu bauen, eine Kasse in einem Supermarkt und mein code tatsächlich ausführt, was ich beabsichtigen, es zu tun, aber für eine Sache.

Nachdem ich die Fragen der Nutzer zu geben, wie viele der Artikel die Sie möchten, die Produkt-Informationen versammelt, und funktioniert gut, aber wenn es soll, bitten Sie den Benutzer zur Eingabe der Produkt-ID für das nächste Produkt, die Zeile wird wiederholt und ich bekomme die folgende exception in meiner fangen: "Illegal operation on empty result set". Wieder, alle Berechnungen und alles ist in Ordnung, außer für die Wiederholung der Zeile. Irgendwelche Ideen auf, was das problem sein könnte?

Den Ausgang, der zu wiederholen ist wie folgt:

Geben Sie Produkt - (oder Exit):

ERROR1: Illegal operation on empty result set.

Geben Sie Produkt - (oder Exit):

Und hier ist der code.

try {
  Class.forName("com.mysql.jdbc.Driver");
  String connection = "jdbc:mysql://myDB?";
  connection = connection + "user=xxx&password=xxxxxx";
  Connection conn = DriverManager.getConnection(connection);
  //MATA IN PRODUKTNUMMER
  System.out.println("\nEnter product (or Exit):");
  GroceryStore.input = GroceryStore.scan.nextLine();

  PreparedStatement stmt = conn.prepareStatement(
          "SELECT * "+
          "FROM Products "+
          "WHERE productNo = ?");
          stmt.setString(1, GroceryStore.input); 

          ResultSet rs = stmt.executeQuery();
          rs.next();

    pName = rs.getString("productName");
    System.out.println("Product: " + pName);

    //MATA IN ANTAL
    System.out.println("\nEnter amount:");
    GroceryStore.amount = GroceryStore.scan.nextInt();


    pPrice = rs.getDouble("productPrice");
    priceRounded = new BigDecimal(pPrice).setScale(2, BigDecimal.ROUND_FLOOR);
    amountRounded = new BigDecimal(GroceryStore.amount).setScale(0);
    priceRounded = priceRounded.multiply(amountRounded);
    GroceryStore.sum = GroceryStore.sum.add(priceRounded);

    inOut.output();  
    inOut.input();
    conn.close();
    }
    catch (Exception e) {
         System.out.println("ERROR1: " + e.getMessage());
    }
Haben Sie blickte auf die Fehlermeldung, die Sie erhalten in einer Suchmaschine ? stackoverflow.com/questions/5199250/...
Was genau meinst du mit "die Zeile wiederholt sich"? Sollten Sie mit der return-Wert von rs.next() um zu sehen, ob es tatsächlich ist eine Zeile.
Welche Zeile wird wiederholt?
Bearbeitet die Zeile, die wiederholt wird.

InformationsquelleAutor Erik | 2013-02-28

Schreibe einen Kommentar