java.sql.SQLException : No value specified for parameter 2 异常

标签 java sql sqlexception

我这里有我的登录密码 我遇到了这个错误, “java.sql.SQLException:没有为参数 2 指定值”

有时, “java.sql.SQLException:参数索引超出范围(1> 参数数量,即 0)。” 我真的不知道。

 import java.sql.*;
 import javax.swing.*;
 public class Login_form extends javax.swing.JFrame {
 Connection conn=null;
 ResultSet rs = null;
 PreparedStatement pst = null;

 public Login_form() {
    initComponents();
    conn=javaconnect.ConnecrDb();
}


// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {

    jPanel1 = new javax.swing.JPanel();
    jLabel2 = new javax.swing.JLabel();
    jLabel1 = new javax.swing.JLabel();
    txt_password = new javax.swing.JPasswordField();
    txt_user = new javax.swing.JTextField();
    btn_login = new javax.swing.JButton();

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

    jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Login", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Trebuchet MS", 1, 18), new java.awt.Color(255, 153, 0))); // NOI18N

    jLabel2.setText("Password:");

    jLabel1.setText("Username:");

    btn_login.setText("Log-In");
    btn_login.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            btn_loginActionPerformed(evt);
        }
    });

    javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
    jPanel1.setLayout(jPanel1Layout);
    jPanel1Layout.setHorizontalGroup(
        jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(jPanel1Layout.createSequentialGroup()
            .addContainerGap()
            .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(jLabel1)
                .addComponent(jLabel2))
            .addGap(1, 1, 1)
            .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                .addComponent(txt_password)
                .addComponent(txt_user, javax.swing.GroupLayout.PREFERRED_SIZE, 126, javax.swing.GroupLayout.PREFERRED_SIZE))
            .addContainerGap())
        .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
            .addContainerGap(100, Short.MAX_VALUE)
            .addComponent(btn_login)
            .addGap(36, 36, 36))
    );
    jPanel1Layout.setVerticalGroup(
        jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(jPanel1Layout.createSequentialGroup()
            .addContainerGap()
            .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                .addComponent(txt_user, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addComponent(jLabel1))
            .addGap(18, 18, 18)
            .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                .addComponent(jLabel2)
                .addComponent(txt_password, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
            .addGap(18, 18, 18)
            .addComponent(btn_login)
            .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
    );

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
            .addGap(169, 169, 169)
            .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
            .addGap(24, 24, 24))
    );
    layout.setVerticalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(layout.createSequentialGroup()
            .addGap(52, 52, 52)
            .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
            .addContainerGap(93, Short.MAX_VALUE))
    );

    pack();
}// </editor-fold>

private void btn_loginActionPerformed(java.awt.event.ActionEvent evt) {

    //String user=txt_user.getText();
    //String pwd = txt_password.getText();
    String sql = "select * from users_employee where username=? and password=?";
    //  JOptionPane.showMessageDialog(null, sql);

    try{

    pst=conn.prepareStatement(sql);
    pst.setString(1,txt_user.getText());
    pst.setString(1,txt_password.getText());

    rs=pst.executeQuery();

    if(rs.next()){
       /* for(int i=1;i<4;i++)
        {

        }*/
        JOptionPane.showMessageDialog(null, "Succesfully Login");
        new home().setVisible(true);
        this.hide();



    }
    }

    catch(Exception e){
        JOptionPane.showMessageDialog(null, e);
        new Login_form().setVisible(true);
    }
}

/**
 * @param args the command line arguments
 */
public static void main(String args[]) {
    java.awt.EventQueue.invokeLater(new Runnable() {

        public void run() {
            new Login_form().setVisible(true);
        }
    });
}
// Variables declaration - do not modify
private javax.swing.JButton btn_login;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JPanel jPanel1;
private javax.swing.JPasswordField txt_password;
private javax.swing.JTextField txt_user;
// End of variables declaration

最佳答案

您正在将用户和密码分配给同一个参数 (1)。

改变这个:

pst.setString(1,txt_user.getText());
pst.setString(1,txt_password.getText());

为此:

pst.setString(1,txt_user.getText());
pst.setString(2,txt_password.getText());

关于java.sql.SQLException : No value specified for parameter 2 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26993563/

相关文章:

java - 连接到 CouchDB 时强制设置连接超时

sql - 在 Postgres 中搜索加密字段

sql - 将非标准联接转换为标准联接

java - 语法错误>>检查与您的 MariaDB 服务器版本相对应的手册,以获取在第 1 行 '?' 附近使用的正确语法

azure - System.Data.SqlClient.SqlException : Login failed for user 'null' . 将 asp.net 发布到 Azure 时

java - Log4j:每个请求一个日志文件

java - 如何单击删除文本可用的特定行?

sql - 如果可用,请在该月加入,否则请在最近一个月加入

java - SQL错误java.lang.ArrayIndexOutOfBoundsException : 0

java - JNA:如何处理未知结构?