2

ユーザーが jtextfield に入力したデータを msaccess データベースに挿入しようとしています。SQL ステートメントを実行しようとすると、INSERT INTO ステートメントの構文エラーを示すエラーが表示されます。SQL ステートメントをチェックして、いくつかの異なることを試しましたが、構文エラーが見つからないようです。

    conn = Connect.ConnectDB();
    String sql = "insert into Team ("
            +"TeamID,"
            +"TeamCity,"
            +"TeamMascot,"
            + "values("+txtid.getText()+ ",'"+txtname.getText()+"','"+txtaddress.getText()+"')" ;
    try{
        pst = conn.prepareStatement(sql);
        pst.execute();
        JOptionPane.showMessageDialog(null, "Entry " + txtid.getText() + " Saved");
        UpdateJTable();
        //conn.close();
    }
    catch(Exception e){
        JOptionPane.showMessageDialog(null, e);
    }
4

1 に答える 1

0

エラーは、キーワードの前に余分なカンマがあり、閉じ括弧がないことですvalues

String sql = "insert into Team ("
            +"TeamID,"
            +"TeamCity,"
            +"TeamMascot,"    // <<== HERE, change comma into closing parenthesis

ところで、あなたのステートメントはSQL Injection. 値をパラメータ化すれば回避できます。例えば、

String sql = "insert into Team (TeamID,TeamCity,TeamMascot) values (?, ?, ?, ?)"
pst = conn.prepareStatement(sql);
pst.setString(1, txtid.getText());
pst.setString(2, txtname.getText());
pst.setString(3, txtaddress.getText());
于 2013-04-25T11:56:41.030 に答える