Невозможно иметь правильный идентификатор в MS Access, используя Java GUI - PullRequest
1 голос
/ 30 июня 2019

У меня есть 2 вопроса, на которые я не смог найти ответы онлайн.Я пытался сделать несколько вещей, но это не совсем работает

  1. Я прикрепил код вниз, но ... Каждый раз, когда я нажимаю кнопку "ADAUGA" (означает Вставить) в моей базе данных, это дает мнебольшее число в ID.(Фото прилагается) Например, если я добавлю сейчас другие слова, он даст мне идентификатор 28 (вероятно)
  2. Как я могу "удалить" ошибку: "java.lang.NumberFormatException: Для входной строки:" "«всякий раз, когда я нажимаю« Адауга », это выдает мне эту ошибку (Фото прилагается)

Код:

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,b3;
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");
    b3=new JButton("MODIFICA");

    add(l1);add(t1);add(l2);add(t2);
    add(l3);add(t3);add(l4);add(t4);add(l5);add(t5);add(b1);add(b2);add(b3);
    setSize(1000,400);   
    setTitle("Conectivitate");
    setVisible(true);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    b1.addActionListener(this);
    b2.addActionListener(this);
    b3.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 (?,?,?,?)");
PreparedStatement psmts=con.prepareStatement("DELETE FROM filme WHERE film_id=?");
PreparedStatement psmtss=con.prepareStatement("Update filme SET titlu_film=?,an_film=?,timp_film=?,film_limba=? 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(1,id);
        psmts.executeUpdate(); 
        }
        if(e.getSource()==b3)
        {
        psmtss.setString(1,nume);
        psmtss.setString(2,data);
        psmtss.setString(3,timp);
        psmtss.setString(4,limba);
        psmtss.setInt(5,id);
        psmtss.executeUpdate();
        }

        con.close();
    System.out.println("Success");
    }catch(Exception r){
    System.out.println(r);
            }
}


public static void main(String[] arr)
{
    new Fereastra1();
}
}

Фото Q1: Q1 photo

Фото Q2: Q2 photo

1 Ответ

0 голосов
/ 30 июня 2019

Переместите следующую строку:

id=Integer.parseInt(t5.getText());

перед строками, содержащими setInt, поэтому она выполняется только для кнопок b2 и b3, а не для кнопки b1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...