Bar*_*t g 1 java sql swing jtextfield parseint
我正在做个人项目.我正在创建一个打卡时钟程序,所以我需要帮助的部分是用户在jTextField中输入uid的地方.因此,我需要检索uid(#######),然后使用sql语句在数据库中搜索该uid.所以这就是我到目前为止所拥有的.问题是jTextField1.getText下面有一个红线,当我运行它时,表示=
"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());
}
}
Run Code Online (Sandbox Code Playgroud)
jTextField1.getText()将返回String用于parseInt转换为int
pstmt.setInt(1, Integer.parseInt(jTextField1.getText()));
Run Code Online (Sandbox Code Playgroud)
从文档中可以看出,该setInt()方法将两个参数都视为int.
public void setInt(int parameterIndex,
int x)
Run Code Online (Sandbox Code Playgroud)
所以,你需要改变这个:
pstmt.setInt(1, jTextField1.getText());
Run Code Online (Sandbox Code Playgroud)
至:
pstmt.setInt(1, Integer.parseInt(jTextField1.getText()));
Run Code Online (Sandbox Code Playgroud)
因为该getText()方法返回一个String.
| 归档时间: |
|
| 查看次数: |
1018 次 |
| 最近记录: |