有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java MsAccess SQL异常参数太少

目前正在制作一个java程序,从MSAccess数据库中获取数据,其中一些错误非常令人沮丧。我一直收到这个SQL。例外:参数太少。此程序中最后剩余的错误预计为1个错误

db的小背景:它有3个表(一个玩家表(11列)、一个团队表(3列)和一个对手表(6列)

这些都是函数,我很确定问题出在这里的某个地方

conn = Connect.ConnectDB();
    String sql = "insert into Player ("+"PlayerLastName,"+"PlayerFirstName,"+"Position)"+ "values("+txtid.getText()+ ",'"+txtname.getText()+"','"+txtaddress.getText()+"')" ;
    try{
        pst = conn.prepareStatement(sql);
        pst.executeQuery();
        pst.setString(1, txtid.getText());
        pst.setString(2, txtname.getText());
        pst.setString(3, txtaddress.getText());
        JOptionPane.showMessageDialog(null, txtid.getText() + " Saved");
        UpdateJTable();
        //conn.close();
    }
    catch(Exception e){
        JOptionPane.showMessageDialog(null, e);
    }

还是这个函数

        String sql = "select * from Player where PlayerLastName = " +txtid.getText()+ "";
    String pine = null;
    try{
        pst = conn.prepareStatement(sql);

        ResultSet res;
        res = pst.executeQuery();

        pine.equalsIgnoreCase(jTable1.getModel().getValueAt(rowsu, 10).toString());

        while(res.next()){
            JOptionPane.showMessageDialog(null, txtname + " " + txtid.getText() + " has a total of " +"4");//+ pine);//res.getInt("Penalties") );

        }
        UpdateJTable();

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

共 (1) 个答案

  1. # 1 楼答案

    首先,在insert语句中,姓氏周围似乎缺少单引号

    可能还有其他错误,这只是我注意到的第一件事

    如果您在执行sql字符串之前只记录它,那么这应该很容易调试

    编辑

    我认为您对setString()的调用也是一个问题。以下是你应该如何做到这一点:

    conn = Connect.ConnectDB();
        String sql = "insert into Player (PlayerLastName, PlayerFirstName, Position) values(?, ?, ?)";
        try{
            pst = conn.prepareStatement(sql);
            pst.setString(1, txtid.getText());
            pst.setString(2, txtname.getText());
            pst.setString(3, txtaddress.getText());
            pst.execute();
            JOptionPane.showMessageDialog(null, txtid.getText() + " Saved");
            UpdateJTable();
            //conn.close();
        }
        catch(Exception e){
            JOptionPane.showMessageDialog(null, e);
        }