0

i got this error :

Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "Xavega" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Integer.parseInt(Integer.java:492) at java.lang.Integer.parseInt(Integer.java:527) at inspection.management.system.RegistrationForm.InsertRecord(RegistrationForm.java:352) at inspection.management.system.RegistrationForm.button1ActionPerformed(RegistrationForm.java:256) at inspection.management.system.RegistrationForm.access$000(RegistrationForm.java:12) at inspection.management.system.RegistrationForm$1.actionPerformed(RegistrationForm.java:109) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252) at java.awt.Component.processMouseEvent(Component.java:6505) at javax.swing.JComponent.processMouseEvent(JComponent.java:3320) at java.awt.Component.processEvent(Component.java:6270) at java.awt.Container.processEvent(Container.java:2229) at java.awt.Component.dispatchEventImpl(Component.java:4861) at java.awt.Container.dispatchEventImpl(Container.java:2287) at java.awt.Component.dispatchEvent(Component.java:4687) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422) at java.awt.Container.dispatchEventImpl(Container.java:2273) at java.awt.Window.dispatchEventImpl(Window.java:2719) at java.awt.Component.dispatchEvent(Component.java:4687) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735) at java.awt.EventQueue.access$200(EventQueue.java:103) at java.awt.EventQueue$3.run(EventQueue.java:694) at java.awt.EventQueue$3.run(EventQueue.java:692) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87) at java.awt.EventQueue$4.run(EventQueue.java:708) at java.awt.EventQueue$4.run(EventQueue.java:706) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:705) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138) at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

while trying to inserting JPasswordField text to the database

Here is my code:

String _passwordField1 = passwordField1.getText();
int _password = Integer.parseInt(_passwordField1);

try
        {
            String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
            Class.forName(driver);

            String url = "jdbc:odbc:Database";

            conn = DriverManager.getConnection(url);

            String command = "insert into Member (Password) values (?)";

            PreparedStatement statement = conn.prepareStatement(command);

            statement.setInt(2, _password);

            statement.executeUpdate(command);
        }

catch (Exception e) 
        {
             System.err.println(e.getMessage());

            _sound.PlaySound(2);

            _infoBox.ShowMessageBox(e.getMessage(), "Error", 2);

            _reminder = new Reminder(1);

            JOptionPane.showOptionDialog(null, "Program will be closed due to error", "Error", JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE, null, new Object[]{}, null);

            System.exit(0);
        }

2 Answers 2

3
int _password = Integer.parseInt(_passwordField1);

The exception is very clear.

You cannot a string called "Xavega" to an integer.

Get rid off that line. Because there is no need to convert a password into integer.

Insert password as a String in database.

  updateTotal.setString(1, _passwordField1);

And I'm not sure why you wrote 2 instead of 1. You should write 1, because it is first parameter.

Sign up to request clarification or add additional context in comments.

3 Comments

what happen if user enter the password "X345ga"? i mean, what happen if user enter the password mix with string and number value? how do i solve this problem if like that sir? Do i have to tell user to enter a number only or text only?
Nothing happens, "X345ga" is also a string
because there are another value that i want to input to the database other than _passwordField1, when i change the code in this, i forgot to change 2 to 1.. Anyway, thanks for the answer
2

That is because of your line int _password = Integer.parseInt(_passwordField1);. You try to pass a String which is not an Integer and parse it to int.

2 Comments

yeah, when i run the program, i enter the string value in the JPasswordField, the error appears. But, what happen if i enter the number value and string value into JPasswordField? what is the best solution to fix this problem sir?
@Kaoru, pass your password as a String and use it like that, don't convert it to int. Strings may contain numbers.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.