クイック質問。以下のコードでは、データベースで特定のIDが使用可能かどうかをチェックし、そうであればIDの出席履歴をすべて取得します。そうでない場合、IDがデータベースに存在しない場合はエラーメッセージが表示されます。しかし、私が得たコードは、常にレコードが添付されていると言って、IDの有無にかかわらずエラーメッセージも表示します。おそらくコードの順番などを変えなければならないと思いますか?アドバイスをお願いしますか?Java IF ELSEステートメント
JButton button = new JButton("Submit");
button.addActionListener(new ActionListener() {
@SuppressWarnings("unused")
public void actionPerformed(ActionEvent arg0) {
String studentID = textField.getText();
try {
Statement st = con.con.createStatement();
ResultSet rs = st.executeQuery("SELECT StudentID, date FROM attendance WHERE StudentID ="+textField.getText());
while (rs.next()) {
String student = rs.getString("StudentID");
String date = rs.getString("date");
System.out.println(student+"");
System.out.println(date);
}
JOptionPane.showMessageDialog(frmAttendanceHistory, "Attendance has been registered.");
frmAttendanceHistory.setVisible(false);
if (!rs.next()) {
JOptionPane.showMessageDialog(frmAttendanceHistory, "A record for the given Student ID doesn't exist");
}
}
catch (SQLException e) {
JOptionPane.showMessageDialog(frmAttendanceHistory, "Attendance couldn't be registered. Please try again!");
e.printStackTrace();
}
}
});
なぜ、私はいつもジョンスカートによってNINJAを手に入れますか?私は言うべきたくさんの美しいものがありました... – Tudor
@Jon Skeet、あなたのアドバイスのおかげで。あなたのコードは動作しますが、それはループしませんか? whileステートメントではなくifステートメントが得られます。与えられたIDで記録する必要がある場合はどうすればいいですか?私はちょうどそれを試したので、私は与えられたIDの2レコードを持っていますが、それは最初のレコードを表示しただけですか? –
@PitaSivam:いいえ、ループしません。あなたがコンソールに印刷しているだけなので、ループには何のポイントもないようです。もしあなたがループしたいならば、おそらく 'List'などを作成し、ループの後でリストが空であるかどうかを確認するだけです。 –