Java 当我检索一些数据以显示在对话框中时,JOptionPane.showConfirmDialog在netbeans中不工作

Java 当我检索一些数据以显示在对话框中时,JOptionPane.showConfirmDialog在netbeans中不工作,java,netbeans,jdbc,Java,Netbeans,Jdbc,以下是代码: int value = JOptionPane.showConfirmDialog(Delete_Panel, "Delete Record of '"+rs.getString("Name")+"'", "Delete Now", JOptionPane.YES_NO_OPTION); 它什么也不做。。 但是当我删除rs.getString(“Name”)时,它工作得很好,但我还想在确认对话框中从ms access中显示该名称,然后根据yes-no选项,我希望执行

以下是代码:

       int value = JOptionPane.showConfirmDialog(Delete_Panel, "Delete Record of '"+rs.getString("Name")+"'", "Delete Now", JOptionPane.YES_NO_OPTION);
它什么也不做。。 但是当我删除
rs.getString(“Name”)
时,它工作得很好,但我还想在确认对话框中从ms access中显示该名称,然后根据yes-no选项,我希望执行进一步的代码

完整的源代码是:

       String input = txtDelete.getText();


        Connection connection;

        try {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            connection = DriverManager.getConnection("jdbc:odbc:NewPData");
            Statement st = connection.createStatement();
            ResultSet rs = st.executeQuery("select ID from Table1 where ID=" + input);

            if (!rs.next()) {
                JOptionPane.showMessageDialog(Delete_Panel, "ID does not exist");
            } else {

             // int value = JOptionPane.showConfirmDialog(Delete_Panel, "Delete Record of '"+rs.getString("Name")+"'", "Delete Now", JOptionPane.YES_NO_OPTION);

                st.executeUpdate("delete from Table1 where ID=" + input);
                JOptionPane.showMessageDialog(Delete_Panel, "Record is Deleted");
                connection.close();

            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
        }
    }

您是否考虑过创建一个临时字符串变量,并将其设置为
rs.getString(“Name”)
的输出,然后在JOptionPane中显示该字符串?

是的,正如前面的回答所述,可能是rs为空或rs.next()从未被调用或没有列“Name”在resultset中,因此我们尝试连接空名称。进行此操作时是否有任何异常。?最好在临时变量中取这个rs.getString(“Name”)值,看看它是否真的是非空值。这是我能看到的唯一问题。

您的代码应该可以正常工作。请在对话框中公布确切的输出

在调用showConfirmDialog之前,您是否尝试先获取数据

rs=语句。执行程序

编辑:

ResultSet rs = st.executeQuery("select ID from Table1 where ID=" + input);

将仅获取列ID。请尝试以下操作:

ResultSet rs = st.executeQuery("select ID,Name from Table1 where ID=" + input);

ResultSet rs=st.executeQuery(“从表1中选择ID、名称,其中ID=“+input”);

尝试将代码放入Try-catch块,查看是否引发异常。如果是,那么您必须处理它,以便在UI中获取一些文本。

您的rs可能为空。在显示确认对话框之前,请先尝试执行查询。是的,我认为你们是对的,得到一个空值,我该如何解决它?嘿,也请尝试回答问题:是的,我认为你们是对的,得到一个空值,我该如何解决它?java.sql.SQLException:Column not found那就是它,然后是您正在使用的列,即“Name”不是要获取的结果中的列的名称。检查此列的名称,大写/小写,您应该能够找出问题所在。如果rs.getString(“name”)给出的是空值,那么您应该使用临时变量并相应地采取行动。例如String temp=rs.getString(“Name”);如果(null==temp){temp=“找不到名称”}并在代码中使用此temp而不是rs.getString(“Name”).thnx dude我的问题解决了,您可以看到正确的答案:)thnx amit