java - java插入数据库报错

标签 java ms-access netbeans

我收到此错误:

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)

尝试将 JPasswordField 文本插入数据库时​​

这是我的代码:

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

最佳答案

int _password = Integer.parseInt(_passwordField1);

异常情况非常明显。

您不能将名为“Xavega”的字符串转换为整数

摆脱那条线。因为不需要将密码转换为整数

将密码作为字符串插入数据库中。

  updateTotal.setString(1, _passwordField1);

我不知道你为什么写2而不是1。你应该写1,因为它是第一个参数。

关于java - java插入数据库报错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20029574/

相关文章:

java - Eclipse 没有响应

ms-access - 如何使用 VBA 创建 CurrentDb 的副本

sql - 在 VB.Net 中使用 SQL 连接到 Access 数据库

tomcat - 将 Web 应用程序从本地计算机部署到远程 tomcat 服务器

java - 将mysql数据库的两列数据依次打印到jTextfield的最佳方法

java - 如何在 Lucene 中查询自动完成/建议?

java - java中的参数多态性与简单示例

java - 使用 Java Netbeans 发送电子邮件

ms-access - AutoExec 模块未启动

java - Context,DataSource 描述了什么?