不断收到错误:至少有一个当前语句的参数未初始化

问题描述:

这是我正在执行的代码。在此代码中,我尝试更新y数据库,详细信息来自组合框。不断收到错误:至少有一个当前语句的参数未初始化

private void SubmitActionPerformed(java.awt.event.ActionEvent evt) {          
    Connection connection; 
    try { 
     int flag=1; 
     try { 
      Class.forName("com.mysql.jdbc.Driver"); 
     } catch (Exception ex) { 
      System.out.println("Error"+ex); 
     } 
     connection = DriverManager.getConnection("jdbc:derby://localhost:1527/loginDB", "login_user" ,"root"); 
     String query = "INSERT into FACULTY_DETAILS (FACULTYNAME,LECTUREQUALITY,COMSKILLS,KNOWLEDGE,BEHAVIOUR,NOTESPROVIDED,PUNCTUALITY,SUGGESTION) values(?,?,?,?,?,?,?,?)"; 
     PreparedStatement pt = connection.prepareStatement(query); 
     //Statement pt = connection.createStatement(); 
     pt.executeUpdate(); 
     ResultSet rs = pt.executeQuery("SELECT * FROM LOGIN_USER.FACULTY_DETAILS"); 
     while(rs.next()){ 
     if(rs.getString(1).equals(kapil.getText())){ 
     pt.setString(2, (String) javalec.getSelectedItem()); 
     pt.setString(3,(String)javacomm.getSelectedItem()); 
     pt.setString(4,(String)javaknow.getSelectedItem()); 
     pt.setString(5, (String) javabeh.getSelectedItem()); 
     pt.setString(6, (String) javanot.getSelectedItem()); 
     pt.setString(7, (String) javapun.getSelectedItem()); 
     pt.setString(8,javatext.getText()); 
     pt.executeUpdate(); flag=0;} 
     if(rs.getString(1).equals(ziaul.getText())){ 
     pt.setString(2, (String) oslec.getSelectedItem()); 
     pt.setString(3,(String)oscomm.getSelectedItem()); 
     pt.setString(4,(String)osknow.getSelectedItem()); 
     pt.setString(5, (String) osbeha.getSelectedItem()); 
     pt.setString(6, (String) osnote.getSelectedItem()); 
     pt.setString(7, (String) ospun.getSelectedItem()); 
     pt.setString(8,ostext.getText()); 
     pt.executeUpdate(); 
      flag=0;} 
     if(rs.getString(1).equals(saurabh.getText())){ 
     pt.setString(2, (String) daalec.getSelectedItem()); 
     pt.setString(3,(String)daacomm.getSelectedItem()); 
     pt.setString(4,(String)daakno.getSelectedItem()); 
     pt.setString(5, (String) daabeh.getSelectedItem()); 
     pt.setString(6, (String) daanot.getSelectedItem()); 
     pt.setString(7, (String) daapun.getSelectedItem()); 
     pt.setString(8,daatext.getText()); 
     pt.executeUpdate(); 
      flag=0;} 
     if(rs.getString(1).equals(gayatri.getText())){ 
     pt.setString(2, (String) ecolec.getSelectedItem()); 
     pt.setString(3,(String)ecocomm.getSelectedItem()); 
     pt.setString(4,(String)ecokno.getSelectedItem()); 
     pt.setString(5, (String) ecobeh.getSelectedItem()); 
     pt.setString(6, (String) econot.getSelectedItem()); 
     pt.setString(7, (String) ecopun.getSelectedItem()); 
     pt.setString(8,ecotext.getText()); 
     pt.executeUpdate(); 
      flag=0;} 
     if(rs.getString(1).equals(tasleem.getText())){ 
     pt.setString(2, (String) clec.getSelectedItem()); 
     pt.setString(3,(String)ccomm.getSelectedItem()); 
     pt.setString(4,(String)cknow.getSelectedItem()); 
     pt.setString(5, (String) cbeh.getSelectedItem()); 
     pt.setString(6, (String) cnote.getSelectedItem()); 
     pt.setString(7, (String) cpun.getSelectedItem()); 
     pt.setString(8,ctext.getText()); 
     pt.executeUpdate(); 
      flag=0;} 
     if(rs.getString(1).equals(saurabhs.getText())){ 
     pt.setString(2, (String)graplec.getSelectedItem()); 
     pt.setString(3,(String)grapcomm.getSelectedItem()); 
     pt.setString(4,(String)grapknow.getSelectedItem()); 
     pt.setString(5, (String) grapbeh.getSelectedItem()); 
     pt.setString(6, (String) grapnot.getSelectedItem()); 
     pt.setString(7, (String) grappun.getSelectedItem()); 
     pt.setString(8,graphtext.getText()); 
     pt.executeUpdate(); 
      flag=0;} 
     if(rs.getString(1).equals(sanjay.getText())){ 
     pt.setString(2, (String) softlec.getSelectedItem()); 
     pt.setString(3,(String) softcomm.getSelectedItem()); 
     pt.setString(4,(String) softknow.getSelectedItem()); 
     pt.setString(5, (String) softbeh.getSelectedItem()); 
     pt.setString(6, (String) softnot.getSelectedItem()); 
     pt.setString(7, (String) softpun.getSelectedItem()); 
     pt.setString(8,softtext.getText()); 
     pt.executeUpdate(); 
     flag=0; 
     } 
     if(flag==0){ 
     JOptionPane.showMessageDialog(null,"Feedback Submitted Successfully"); 
     } 
     } 

    } catch (SQLException ex) { 
     Logger.getLogger(Login.class.getName()).log(Level.SEVERE, null, ex); 
    }         
}          

这是我使用,请帮助我.. 我想执行我所提供的代码的代码,但它不断给我的错误“至少有一个参数设置为当前语句是初始化。 “所以,请帮助...

+1

'pt.setString(1,....)'从未在您的代码中发生 –

+0

请帮我解决方案.. ?? –

+1

您已在下面为您解答问题。在设置James_D解释的值之前,您无法执行语句。 –

的SQL在准备好的声明中有参数标记:

String query = "INSERT into FACULTY_DETAILS (FACULTYNAME,LECTUREQUALITY,COMSKILLS,KNOWLEDGE,BEHAVIOUR,NOTESPROVIDED,PUNCTUALITY,SUGGESTION) values(?,?,?,?,?,?,?,?)"; 

这些参数需要,然后才能执行SQL(它根本没有任何意义,而不在值被设置?的地方)。

但是,你想没有设定参数,执行语句:

PreparedStatement pt = connection.prepareStatement(query); 
    pt.executeUpdate(); 

导致您所描述的错误。在这一点上执行这个陈述你打算做什么并不是很清楚。

此外,您正在尝试为查询和更新使用相同的语句对象。我不相信这会起作用。为查询创建一个单独的声明:

PreparedStatement queryStatement = connection.prepareStatement("SELECT * FROM LOGIN_USER.FACULTY_DETAILS"); 
ResultSet rs = queryStatement.executeQuery(); 

最后请注意,以pt.executeUpdate()的后续调用,在if块,也可能发生而不设置所有的参数,因为你从来没有在任何这些参数1号案例。您还需要将该参数设置为适当的值。

+0

实际上我想要执行的是,我想检查标签名称是否在数据库中的名称相同,然后插入以下内容。所以我应该做什么,我应该以后执行查询.. –

+0

@SankalpSrivastava你已经执行“查询”(这不是查询,它是一个插入)。我不知道为什么在获得所需的信息之前,你还试图执行它。 –

+0

好吧,请帮助我提供我写的代码或线索 –

这里的问题是你正在准备一份声明,你将在设置你需要的细节之后使用它。 然后你试图执行一个executeUpdate()这会期望值的设置。

解决方法:取出得到ResultSetPreparedStatement设定值之前使用的executeUpdate()

private void SubmitActionPerformed(java.awt.event.ActionEvent evt) { 
    Connection connection; 
    PreparedStatement pt; 
    Statement st; 
    ResultSet rs; 
    try { 
    int flag = 1; 
    try { 
    Class.forName("com.mysql.jdbc.Driver"); 
    } catch (Exception ex) { 
    System.out.println("Error" + ex); 
    } 
    connection = DriverManager.getConnection("jdbc:derby://localhost:1527/loginDB", "login_user", "root"); 
    String query = "INSERT into FACULTY_DETAILS (FACULTYNAME,LECTUREQUALITY,COMSKILLS,KNOWLEDGE,BEHAVIOUR,NOTESPROVIDED,PUNCTUALITY,SUGGESTION) values(?,?,?,?,?,?,?,?)"; 
    pt = connection.prepareStatement(query); 
    st = connection.createStatement(); 
    rs = st.executeQuery("SELECT * FROM LOGIN_USER.FACULTY_DETAILS"); 
    while (rs.next()) { 
    if (rs.getString(1).equals(kapil.getText())) { 
    pt.setString(2, (String) javalec.getSelectedItem()); 
    pt.setString(3, (String) javacomm.getSelectedItem()); 
    pt.setString(4, (String) javaknow.getSelectedItem()); 
    pt.setString(5, (String) javabeh.getSelectedItem()); 
    pt.setString(6, (String) javanot.getSelectedItem()); 
    pt.setString(7, (String) javapun.getSelectedItem()); 
    pt.setString(8, javatext.getText()); 
    pt.executeUpdate(); 
    flag = 0; 
    } else if (rs.getString(1).equals(ziaul.getText())) { 
    pt.setString(2, (String) oslec.getSelectedItem()); 
    pt.setString(3, (String) oscomm.getSelectedItem()); 
    pt.setString(4, (String) osknow.getSelectedItem()); 
    pt.setString(5, (String) osbeha.getSelectedItem()); 
    pt.setString(6, (String) osnote.getSelectedItem()); 
    pt.setString(7, (String) ospun.getSelectedItem()); 
    pt.setString(8, ostext.getText()); 
    pt.executeUpdate(); 
    flag = 0; 
    } else if (rs.getString(1).equals(saurabh.getText())) { 
    pt.setString(2, (String) daalec.getSelectedItem()); 
    pt.setString(3, (String) daacomm.getSelectedItem()); 
    pt.setString(4, (String) daakno.getSelectedItem()); 
    pt.setString(5, (String) daabeh.getSelectedItem()); 
    pt.setString(6, (String) daanot.getSelectedItem()); 
    pt.setString(7, (String) daapun.getSelectedItem()); 
    pt.setString(8, daatext.getText()); 
    pt.executeUpdate(); 
    flag = 0; 
    } else if (rs.getString(1).equals(gayatri.getText())) { 
    pt.setString(2, (String) ecolec.getSelectedItem()); 
    pt.setString(3, (String) ecocomm.getSelectedItem()); 
    pt.setString(4, (String) ecokno.getSelectedItem()); 
    pt.setString(5, (String) ecobeh.getSelectedItem()); 
    pt.setString(6, (String) econot.getSelectedItem()); 
    pt.setString(7, (String) ecopun.getSelectedItem()); 
    pt.setString(8, ecotext.getText()); 
    pt.executeUpdate(); 
    flag = 0; 
    } else if (rs.getString(1).equals(tasleem.getText())) { 
    pt.setString(2, (String) clec.getSelectedItem()); 
    pt.setString(3, (String) ccomm.getSelectedItem()); 
    pt.setString(4, (String) cknow.getSelectedItem()); 
    pt.setString(5, (String) cbeh.getSelectedItem()); 
    pt.setString(6, (String) cnote.getSelectedItem()); 
    pt.setString(7, (String) cpun.getSelectedItem()); 
    pt.setString(8, ctext.getText()); 
    pt.executeUpdate(); 
    flag = 0; 
    } else if (rs.getString(1).equals(saurabhs.getText())) { 
    pt.setString(2, (String) graplec.getSelectedItem()); 
    pt.setString(3, (String) grapcomm.getSelectedItem()); 
    pt.setString(4, (String) grapknow.getSelectedItem()); 
    pt.setString(5, (String) grapbeh.getSelectedItem()); 
    pt.setString(6, (String) grapnot.getSelectedItem()); 
    pt.setString(7, (String) grappun.getSelectedItem()); 
    pt.setString(8, graphtext.getText()); 
    pt.executeUpdate(); 
    flag = 0; 
    } else if (rs.getString(1).equals(sanjay.getText())) { 
    pt.setString(2, (String) softlec.getSelectedItem()); 
    pt.setString(3, (String) softcomm.getSelectedItem()); 
    pt.setString(4, (String) softknow.getSelectedItem()); 
    pt.setString(5, (String) softbeh.getSelectedItem()); 
    pt.setString(6, (String) softnot.getSelectedItem()); 
    pt.setString(7, (String) softpun.getSelectedItem()); 
    pt.setString(8, softtext.getText()); 
    pt.executeUpdate(); 
    flag = 0; 
    } 
    if (flag == 0) { 
    JOptionPane.showMessageDialog(null, "Feedback Submitted Successfully"); 
    } 
    } 

    } catch (SQLException ex) { 
    Logger.getLogger(Login.class.getName()).log(Level.SEVERE, null, ex); 
    } finally { 
    if (rs != null) { 
    rs.close(); 
    } 
    if (st != null) { 
    st.close(); 
    } 
    if (pt != null) { 
    pt.close(); 
    } 
    if (connection != null) { 
    connection.close(); 
    } 
    } 
} 

注:我在if地方使用else if避免重复条件检查。并且,终止块以避免内存泄漏

+0

执行您的代码后,我收到以下错误:方法'executeQuery(字符串)'不允许在准备好的语句。 –

+0

@SankalpSrivastava Wierd!我试过相同的代码,它为我工作。没问题!只需创建一条语句为您执行查询。我更新了代码中的答案。 – Sridhar