Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果数据库中不存在ID,则返回消息对话框_Java_Sqlite_Select_Null - Fatal编程技术网

Java 如果数据库中不存在ID,则返回消息对话框

Java 如果数据库中不存在ID,则返回消息对话框,java,sqlite,select,null,Java,Sqlite,Select,Null,如果用户查询我的SQLite数据库中不存在的ID,我很难让我的前端返回一个JOptionPane,说明该ID不存在,如果该ID存在,则显示该ID的记录。我尝试了isEmpty(),这显然是错误的 我的代码: String SelectRecords = "SELECT * FROM Student WHERE ID_Num = ?"; String ID_Number = id_input.getText(); PreparedStatement

如果用户查询我的SQLite数据库中不存在的ID,我很难让我的前端返回一个JOptionPane,说明该ID不存在,如果该ID存在,则显示该ID的记录。我尝试了isEmpty(),这显然是错误的

我的代码:

        String SelectRecords = "SELECT * FROM Student WHERE ID_Num = ?";
        String ID_Number = id_input.getText();
        PreparedStatement ps = c.prepareStatement(SelectRecords);
        ps.setString(1, ID_Number);
        ResultSet rs = ps.executeQuery();
        while(rs.next()){
           String IDNum = rs.getString("ID_Num");
           String LastName = rs.getString("Stud_Name_Last");
           String FirstName = rs.getString("Stud_Name_First");
           String DaysPresent = rs.getString("days_present");
           String DaysAbsent = rs.getString("days_absent");
           String DropStatus = rs.getString("drop_status");
           String Course = rs.getString("course");
           String LastAttended = rs.getString("last_attended_class");


           String StudentRecords = "ID Number: "+IDNum+"\n"+"Last Name"+LastName+"\n"+"First Name: "+FirstName+"\n"+"Days Present: "+DaysPresent+"\n"+"Days Absent: "+DaysAbsent+"\n"+"Drop Status: "+DropStatus+"\n"+"Course: "+Course+"\n"+"Last Attended On: "+LastAttended;

           Output_Label.setText(LastName+", "+FirstName+"(Retrieving...)");



           if(rs.next() == true){
               JOptionPane.showMessageDialog(null, StudentRecords, LastName+", "+FirstName, JOptionPane.INFORMATION_MESSAGE);


           }
           else{
               JOptionPane.showMessageDialog(null, "Does not exist");
           }

您正在调用两次
rs.next()
,这只有在至少有两条记录时才有意义。 假设只有一个学生具有特定的ID,
while
循环也没有意义

程序的逻辑可能如下所示:

ResultSet rs = ps.executeQuery();
if (rs.next()) {
    // found
} else {
    // not found
}

if(IDNum==null)JOptionPane.showMessageDialog(null,“不存在”)@juergend对话框在id存在但对不存在的id的查询没有响应时弹出。在IDE中设置断点,在运行时查看
idnum
的值,您将看到发生了什么。