这是代码:
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) {
}
}
答案 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);