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

时间:2012-12-04 09:37:22

标签: 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访问的名称,然后根据是没有选项我希望我的其他代码可以执行。

完整源代码是:

       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) {
        }
    }

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

是的,如前面的回答中所述,可能是rs为空或者从未调用过rs.next()或者结果集中没有列“name”的情况,因此我们尝试连接null名称。这样做有什么例外吗?最好在临时变量中取这个rs.getString(“Name”)值,看看它是否真的是非空值。这是我能看到的唯一问题。

答案 3 :(得分:0)

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

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

rs = Statement.executeQuery

编辑:

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

Will only get the colum ID. Try this:

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