0

コードは次のとおりです。

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

4 に答える 4

1

コードを try-catch ブロックに入れて、例外が発生するかどうかを確認してください。はいの場合は、UI でテキストを取得するためにそれを処理する必要があります。

于 2012-12-04T10:23:14.773 に答える
0

ええ、以前の回答で述べたように、rs が空であるか、rs.next() が呼び出されていないか、結果セットに列「name」がないため、null 名を連結しようとしている可能性があります。これを行う際に例外はありますか?この rs.getString("Name") 値を一時変数に取り、実際に null 以外の値であるかどうかを確認してください。それが私が見ることができる唯一の問題です。

于 2012-12-04T10:11:28.280 に答える
0

一時的な String 変数を作成し、それを の出力に設定して、rs.getString("Name")その String を JOptionPane 内に表示することを考えたことはありますか?

于 2012-12-04T10:02:31.373 に答える
0

あなたのコードは問題なく動作するはずです。ダイアログの正確な出力を投稿してください。

showConfirmDialog を呼び出す前に、最初にデータを取得しようとしましたか?

rs = ステートメント.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,Name from Table1 where ID=" + input);

于 2012-12-04T10:11:52.023 に答える