【发布时间】:2013-12-20 02:42:39
【问题描述】:
我正在做一个项目,其中我有一个 SQLite 数据库,其中有一个名为 Table1 的表和值标题/位置,没有 ID 作为列等...
我的表单有一个组合框,我设法让它在一行中显示我的数据库。现在我想用一个“删除”按钮来删除我在组合框中选择的行,我有点迷路了。
这是我的组合框代码(我认为这很好):
private void FillCombo(){
try {
String newLine = System.getProperty("line.separator");
Class.forName("org.sqlite.JDBC");
connection = DriverManager.getConnection("jdbc:sqlite:C:\\users\\Kajou\\momentsdb.sqlite");
statement = connection.createStatement();
resultSet = statement.executeQuery("SELECT * FROM Table1");
while (resultSet.next()) {
comboBox1.addItem(resultSet.getString("Title") + " " + "Date:" + resultSet.getString("Day")+"/"+ resultSet.getString("Month") +"/" + resultSet.getString("Year") + " " + resultSet.getString("Location")+ " " + resultSet.getString("Mood"));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
resultSet.close();
statement.close();
connection.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
现在关于删除按钮。我尝试了几件事,但看起来不太顺利:
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
try {
Class.forName("org.sqlite.JDBC");
connection = DriverManager.getConnection("jdbc:sqlite:C:\\users\\Kajou\\momentsdb.sqlite");
statement = connection.createStatement();
String sql = "DELETE FROM Table1 WHERE col_string=Title";
int deleteCount = statement.executeUpdate(sql);
sql = "DELETE FROM Table1 WHERE col_string=?";
pst = connection.prepareStatement(sql);
pst.setString(1,"a string");
deleteCount=pst.executeUpdate();
} catch (ClassNotFoundException ex) {
Logger.getLogger(DeleteImportantMomentsForm.class.getName()).log(Level.SEVERE, null, ex);
} catch (SQLException ex) {
Logger.getLogger(DeleteImportantMomentsForm.class.getName()).log(Level.SEVERE, null, ex);
}
}
【问题讨论】:
-
感谢您的提问,欢迎来到 StackOverflow。好吧,您的控制台上可能有一些异常或堆栈跟踪。他们会澄清情况,或者至少比“这有点行不通”更精确的问题会很好。如果没有更多信息,很难说缺少什么。
-
它无法跟踪我给出的字符串,这就是我得到的错误。我不知道如何从组合框中删除选定的项目,这是主要问题,我希望能得到一些帮助或类似的例子。我在谷歌或这里的搜索中找不到类似的东西
标签: java swing sqlite jcombobox sql-delete