我正在开发个人项目。我正在创建一个打卡时钟程序,因此我需要帮助的部分是用户在jTextField中输入uid的位置。所以,我需要检索uid(#######),然后用sql语句在数据库中搜索该uid。所以这就是我迄今为止的情况。问题是,有jTextField1.getText下红线,当,当我运行它,说=如何从jTextField中检索信息
"setInt(int,int) in java.sql.PreparedStatement cannot be applied to (int,java.lang.String) pstmt.setInt(1, jTextField1.getText());"
任何帮助表示赞赏。谢谢。
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try{
stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
String sql = "SELECT * FROM Students WHERE STUDENTID = ?";
PreparedStatement pstmt = con.prepareStatement(sql);
pstmt.setInt(1, jTextField1.getText()); // Retrieve uid from jTextField
ResultSet rs = pstmt.executeQuery();
while(rs.next()){
String first = rs.getString(2);
String last = rs.getString(3);
String hours = rs.getString(6);
fName.setText(first);
lName.setText(last);
tHours.setText(hours);
}
}
catch(SQLException err){
JOptionPane.showMessageDialog(Student.this, err.getMessage());
}
}
有什么问题? – user845279
SORRY !!问题是在jTextField1.getText下有一条红线,当我运行它时,在java.sql.PreparedStatement中说=“setInt(int,int)不能应用于(int,java.lang.String) pstmt.setInt(1,jTextField1.getText());“ –
[离题]:这种方法是由EDT调用的吗?你可能不想在美国东部时间做这个I/O。 –