Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ms access插入sql异常:一般错误_Java_Sql_Swing_Ms Access - Fatal编程技术网

Java ms access插入sql异常:一般错误

Java ms access插入sql异常:一般错误,java,sql,swing,ms-access,Java,Sql,Swing,Ms Access,这是我的java文件,它对应于错误 JAva文件: int price=Integer.parseInt(jTextField3.getText()); int num=Integer.parseInt(jTextField2.getText()); int amt=price*num; jLabel4.setText(""+amt); try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"

这是我的java文件,它对应于错误

JAva文件:

    int price=Integer.parseInt(jTextField3.getText());
    int num=Integer.parseInt(jTextField2.getText());
    int amt=price*num;
    jLabel4.setText(""+amt);


    try {
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        con=DriverManager.getConnection("jdbc:odbc:yum");
        String sql="insert into Table1 values(?,?,?)";
        p=con.prepareStatement(sql);
        p.setInt(1,num);
        p.setInt(2,price);
        p.setInt(3,amt);
       p.executeUpdate();

    }
    catch(SQLException | ClassNotFoundException s){
    Logger.getLogger(godGUI.class.getName()).log(Level.SEVERE, null, s);

    }
    finally{
        try {
            p.close();
            con.close();
        } catch (SQLException ex) {
            Logger.getLogger(godGUI.class.getName()).log(Level.SEVERE, null, ex);
        }
    }


}                             
当我为第一个tym运行这个文件时,它可以工作,但在下一个tym中,它总是弹出相同的错误

我已经参考了前面的答案来更改dsn、重新获取文件、在finally块中关闭连接,但仍然出现错误

我是不是遗漏了什么


有什么问题吗?

当您使用以下syntex进行不带列名的插入查询时

字符串sql=“插入到表1值(?,?)”

您必须确保提供表中的每一列值,甚至是可为空的列值。您还必须确保按照数据库中定义的确切顺序提供它们

或者使用如下语法。 String sql=“插入表1(数值、价格、金额)值(?,?)”


请共享数据库表以获得更多说明。

因为您正在使用以下syntex进行不带列名的插入查询

字符串sql=“插入到表1值(?,?)”

您必须确保提供表中的每一列值,甚至是可为空的列值。您还必须确保按照数据库中定义的确切顺序提供它们

或者使用如下语法。 String sql=“插入表1(数值、价格、金额)值(?,?)”


请共享数据库表以获取更多说明。

您能显示该表吗?我已添加了我的表的图像您能显示该表吗?我已添加了我的表的图像当我进行上述更改时,我收到了此错误-'java.sql.SQLException:[Microsoft][ODBC Microsoft Access Driver]INSERT INTO语句中出现语法错误。'在进行上述更改时,我遇到了此错误-'java.sql.SQLException:[Microsoft][ODBC Microsoft Access Driver]INSERT INTO语句中出现语法错误。'
    int price=Integer.parseInt(jTextField3.getText());
    int num=Integer.parseInt(jTextField2.getText());
    int amt=price*num;
    jLabel4.setText(""+amt);


    try {
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        con=DriverManager.getConnection("jdbc:odbc:yum");
        String sql="insert into Table1 values(?,?,?)";
        p=con.prepareStatement(sql);
        p.setInt(1,num);
        p.setInt(2,price);
        p.setInt(3,amt);
       p.executeUpdate();

    }
    catch(SQLException | ClassNotFoundException s){
    Logger.getLogger(godGUI.class.getName()).log(Level.SEVERE, null, s);

    }
    finally{
        try {
            p.close();
            con.close();
        } catch (SQLException ex) {
            Logger.getLogger(godGUI.class.getName()).log(Level.SEVERE, null, ex);
        }
    }


}