0

現在、MSAccess データベースからデータを取得する Java プログラムを作成していますが、これらのエラーのいくつかは非常にイライラさせられます。私はこの SQL.Exception を取得し続けます: パラメーターが少なすぎます。このプログラムの最後の残りのバグで 1 つのエラーが予想されます。

データベースの背景: 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);
    }
4

1 に答える 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);
    }
于 2013-04-25T14:54:41.500 に答える