java - 无法使用 GUI Java 从 MS Access 中删除数据
问题描述
我无法从我的数据库中删除一行。我附上了一张桌子和代码的照片。下来你可以看到我使用的方法(psmts)。我还将 id 声明为 int 。我尝试了几件事,但到目前为止没有奏效。有什么方法可以通过插入 ID 来删除一行?
package fereastra1;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.sql.*;
import java.io.*;
class Fereastra1 extends JFrame implements ActionListener
{
JLabel l1,l2,l3,l4,l5;
JTextField t1,t2,t3,t4,t5;
JButton b1,b2;
public Fereastra1()
{
ResultSet rs;
setLayout(new FlowLayout());
l1=new JLabel("titlu_film");
l2=new JLabel("an_film");
l3=new JLabel("timp_film");
l4=new JLabel("film_limba");
l5=new JLabel("ID");
t1=new JTextField(20);
t2=new JTextField(10);
t3=new JTextField(10);
t4=new JTextField(10);
t5=new JTextField(10);
b1=new JButton("ADAUGA");
b2=new JButton("STERGE");
add(l1);add(t1);add(l2);add(t2);
add(l3);add(t3);add(l4);add(t4);add(l5);add(t5);add(b1);add(b2);
setSize(1000,400);
setTitle("Conectivitate");
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
b1.addActionListener(this);
b2.addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{
try{
Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
Connection con=DriverManager.getConnection("jdbc:ucanaccess://D:\\Temp\\film.accdb");
PreparedStatement psmt=con.prepareStatement("INSERT INTO filme (titlu_film,an_film,timp_film,film_limba) VALUES (?,?,?,?)");
//HERE I TRIED THE METHOD !!!!!!
PreparedStatement psmts=con.prepareStatement("DELETE FROM filme WHERE film_id=?");
String nume,data,timp,limba;
int id;
nume= t1.getText();
data= t2.getText();
timp=t3.getText();
limba= t4.getText();
id=Integer.parseInt(t5.getText());
if(e.getSource()==b1)
{
psmt.setString(1,nume);
psmt.setString(2,data);
psmt.setString(3,timp);
psmt.setString(4,limba);
psmt.executeUpdate();
}
if(e.getSource()==b2)
{
psmts.setInt(5,id);
psmts.executeUpdate();
}
con.close();
System.out.println("Success");
}catch(Exception r){
System.out.println(r);
}
}
public static void main(String[] arr)
{
new Fereastra1();
}
}
解决方案
我相信删除的位置参考是关闭的?
改变:
psmts.setInt(5,id); // psmts delete parameter 5 ??
至:
psmts.setInt(1,id); // only 1 parameter in the delete prepared statement
推荐阅读
- node.js - 如何使用 apollo 服务器从服务器设置响应标头?
- vert.x - Single 的 Vert-x RxJava Map 实现与 HttpResponse::body 参数不匹配
- r - 比较向量的名称并选择常见的并将值相加
- javascript - 通过递归检查每个字符串编号
- java - Java 正则表达式查找或替换第一次出现而不丢失尾部文本
- sql - 我想通过 cdValuse 选择相同的 Table 相同的列来分隔 Desc_Main 和 Desc_sup
- mysql - 用于计数和显示(列中的不同值)的 Sql 查询优化,按其他两列分组
- python - 如何从字符串中找到多字字符串,并在python中标记它?
- java - BottomAppBar 抛出 IllegalArgumentException
- javascript - Node.js 相当于:echo 'message' | 数控-v