-1
private void btgetinvActionPerformed(java.awt.event.ActionEvent evt) {
    if(tf_rmid.getText().length()==11){
        JOptionPane.showMessageDialog(null,"REMITTANCE ID IS VALID!");
        try {
                DBUtil util = new DBUtil();
                Connection con = util.getConnection();
                Statement stmt = con.createStatement();
                ResultSet rs = stmt.executeQuery("select bk_det.rm_id from bk_det inner join bk_rep on bk_det.rm_id = bk_rep.rm_id WHERE rm_id = ?");
                String rm = tf_rmid.getText().trim();          
                stmt.setString(1, ""+(rm));
                while(rs.next()){
                   int i = rs.getString("RM ID");
                   String fn = rs.getString("First Name");
                   String ln = rs.getString("Last Name");
                   String title = rs.getString("Title");
                   String city = rs.getString("City");
                   txtFirstName.setText(fn);
                   txtLastName.setText(ln);
                   txtTitle.setText(title);
                   txtCity.setText(city);
                }
            } catch (Exception ex) {
                JOptionPane.showMessageDialog(null, ex.getMessage());
                Logger.getLogger(Demo.class.getName()).log(Level.SEVERE, null, ex);
            }
    }else{
       JOptionPane.showMessageDialog(null,"PLEASE ENTER VALID REMITTANCE ID!");
    }

}

selectステートメントを使用してデータベースから値を検索しようとしていますが、値を取得しようとすると? whereオプションでエラーが発生しました。構文の間違いだと思います。誰か助けてください???

4

3 に答える 3

1

準備済みステートメントを使用します。

    String query = "select bk_det.rm_id from bk_det inner join bk_rep on bk_det.rm_id = bk_rep.rm_id WHERE rm_id = ?";
    try {
        PreparedStatement preps = con.prepareStatement(query);
        preps.setString(1, ""+(rm));
        preps.execute();
        ...
于 2012-12-30T14:46:57.503 に答える
1

これで実行し、

select bk_det.rm_id from bk_det inner join bk_rep 
on bk_det.rm_id = bk_rep.rm_id WHERE bk_det.rm_id = ?

おそらくwhere句にテーブル名がありません

于 2012-12-30T14:39:05.090 に答える
1

クエリを実行した後にパラメーターをステートメントに設定しているのは少し奇妙に思えます。

また

int i = rs.getString("RM ID");

これはコンパイルされません (rs が java.sql.ResultSet インスタンスの場合)

于 2012-12-30T14:43:17.797 に答える